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