A veces, mientras trabajamos con listas de Python, podemos tener un problema en el que necesitamos retener solo las strings que coinciden con un valor particular de la lista correspondiente en el mismo índice. Esto puede tener aplicación en muchos dominios. Analicemos ciertas formas en que se puede realizar esta tarea.
Método n.º 1: Uso de la comprensión de listas +zip()
La combinación de las funcionalidades anteriores se puede utilizar para realizar esta tarea. En esto, extraemos la lista después de comprimir selectivamente tanto la lista que coincide con K.
# Python3 code to demonstrate # Retain K match index values from other list # using zip() + list comprehension # Initializing lists test_list1 = ['Gfg', 'is', 'best', 'for', 'Geeks', 'and', 'CS'] test_list2 = [4, 1, 4, 3, 4, 2, 4] # printing original lists print("The original list 1 is : " + str(test_list1)) print("The original list 2 is : " + str(test_list2)) # Initializing K K = 4 # Group elements from Dual List Matrix # using zip() + list comprehension res = [x for x, y in zip(test_list1, test_list2) if y == K] # printing result print ("The filtered list : " + str(res))
La lista original 1 es: [‘Gfg’, ‘is’, ‘best’, ‘for’, ‘Geeks’, ‘and’, ‘CS’]
La lista original 2 es: [4, 1, 4, 3, 4, 2, 4]
La lista filtrada: [‘Gfg’, ‘best’, ‘Geeks’, ‘CS’]
Método #2: Uso compress()
de la comprensión de listas +
Esta es otra forma en la que se puede realizar esta tarea. En esto, usamos compress() en lugar de zip() para resolver el problema.
# Python3 code to demonstrate # Retain K match index values from other list # using compress + list comprehension from itertools import compress # Initializing lists test_list1 = ['Gfg', 'is', 'best', 'for', 'Geeks', 'and', 'CS'] test_list2 = [4, 1, 4, 3, 4, 2, 4] # printing original lists print("The original list 1 is : " + str(test_list1)) print("The original list 2 is : " + str(test_list2)) # Initializing K K = 4 # Group elements from Dual List Matrix # using compress + list comprehension res = list(compress(test_list1, map(lambda ele: ele == K, test_list2))) # printing result print ("The filtered list : " + str(res))
La lista original 1 es: [‘Gfg’, ‘is’, ‘best’, ‘for’, ‘Geeks’, ‘and’, ‘CS’]
La lista original 2 es: [4, 1, 4, 3, 4, 2, 4]
La lista filtrada: [‘Gfg’, ‘best’, ‘Geeks’, ‘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