Python: filtre la lista de strings cuyo índice en la segunda lista contiene la substring dada

Dadas dos listas, extraiga todos los elementos de la primera lista, cuyo índice correspondiente en la segunda lista contenga la substring requerida.

Ejemplos:

Entrada : test_list1 = [“Gfg”, “is”, “not”, “best”, “and”, “not”, “CS”], 
test_list2 = [“Está bien”, “todo bien”, “incorrecto” , “se ve bien”, “ok”, “incorrecto”, “eso está bien”], sub_str = “ok” 
Salida : [‘Gfg’, ‘is’, ‘best’, ‘and’, ‘CS’] 
Explicación : Todos los retenidos contienen «ok» como substring en el idx correspondiente, por ejemplo: Gfg -> Está bien (tiene ok) como substring.

Entrada : lista_prueba1 = [“Gfg”, “no”, “mejor”], 
lista_prueba2 = [“sí”, “noo”, “es sí”], sub_str = “sí” 
Salida : [‘Gfg’, ‘mejor’ ] 
Explicación : todos los retenidos contienen «sí» como substring en el idx correspondiente, por ejemplo: Gfg -> sí (tiene sí) como substring. 

Método #1: Usar zip() + loop + operador in

En esto, combinamos los índices usando zip(), y el operador in se usa para verificar la substring. Loop se utiliza para la tarea de iteración.

Python3

# Python3 code to demonstrate working of
# Extract elements filtered by substring
# from other list Using zip() + loop + in
# operator
 
# initializing list
test_list1 = ["Gfg", "is", "not", "best", "and",
              "not", "for", "CS"]
test_list2 = ["Its ok", "all ok", "wrong", "looks ok",
              "ok", "wrong", "ok", "thats ok"]
 
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
 
# initializing substr
sub_str = "ok"
 
res = []
# using zip() to map by index
for ele1, ele2 in zip(test_list1, test_list2):
 
    # checking for substring
    if sub_str in ele2:
        res.append(ele1)
 
# printing result
print("The extracted list : " + str(res))

Producción:

La lista original 1 es: [‘Gfg’, ‘is’, ‘not’, ‘best’, ‘and’, ‘not’, ‘for’, ‘CS’] 
La lista original 2 es: [‘Its ok’ , ‘todo bien’, ‘incorrecto’, ‘parece estar bien’, ‘ok’, ‘incorrecto’, ‘ok’, ‘está bien’] 
La lista extraída: [‘Gfg’, ‘is’, ‘best’, ‘ y’, ‘para’, ‘CS’]

Método n.° 2: usar la comprensión de listas + zip() 

Esto es similar al método anterior. La única diferencia aquí es que la comprensión de listas se usa como abreviatura para resolver el problema.

Python3

# Python3 code to demonstrate working of
# Extract elements filtered by substring
# from other list Using list comprehension + zip()
 
# initializing list
test_list1 = ["Gfg", "is", "not", "best", "and",
              "not", "for", "CS"]
test_list2 = ["Its ok", "all ok", "no", "looks ok",
              "ok", "wrong", "ok", "thats ok"]
 
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
 
# initializing substr
sub_str = "ok"
 
# using list comprehension to perform task
res = [ele1 for ele1, ele2 in zip(test_list1, test_list2) if sub_str in ele2]
 
# printing result
print("The extracted list : " + str(res))

Producción:

La lista original 1 es: [‘Gfg’, ‘is’, ‘not’, ‘best’, ‘and’, ‘not’, ‘for’, ‘CS’] 
La lista original 2 es: [‘Its ok’ , ‘todo bien’, ‘no’, ‘se ve bien’, ‘ok’, ‘incorrecto’, ‘ok’, ‘está bien’] 
La lista extraída: [‘Gfg’, ‘is’, ‘best’, ‘ y’, ‘para’, ‘CS’]

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *