El problema de eliminar los elementos coincidentes de dos listas y construir una nueva lista que tenga solo los elementos filtrados que no están presentes en la segunda lista se ha discutido anteriormente, pero a veces tenemos más que un elemento elemental, sino una tupla como elemento de la lista. El manejo de tal caso requiere un tipo diferente de manejo. Analicemos ciertas formas de cómo se puede resolver este problema.
Método #1: Usar la comprensión de listas
Esta tarea en particular se puede realizar usando la comprensión de listas como abreviatura del bucle for que habríamos usado. Simplemente verificamos la existencia de una tupla en otra y tomamos una decisión en consecuencia.
# Python3 code to demonstrate # filter repeated tuple # using list comprehension # initializing lists test_list1 = [('Geeks', 'for'), ('Geeks', 'is'), ('Computer', 'Science')] test_list2 = [('Geeks', 'for'), ('Geeks', 'is')] # printing original lists print("The original list 1 : " + str(test_list1)) print("The original list 1 : " + str(test_list2)) # using list comprehension # filter repeated tuple res = [sub for sub in test_list1 if sub not in test_list2] # print result print("The filtered list of tuples : " + str(res))
The original list 1 : [('Geeks', 'for'), ('Geeks', 'is'), ('Computer', 'Science')] The original list 1 : [('Geeks', 'for'), ('Geeks', 'is')] The filtered list of tuples : [('Computer', 'Science')]
Método #2: Usar el -
operador set() + “ ”
La tarea de obtener la diferencia de dos listas también se puede hacer usando el conjunto que convierte la lista y luego se puede usar el operador menos para obtener la diferencia del conjunto.
# Python3 code to demonstrate # filter repeated tuple # using set() + "-" operator # initializing lists test_list1 = [('Geeks', 'for'), ('Geeks', 'is'), ('Computer', 'Science')] test_list2 = [('Geeks', 'for'), ('Geeks', 'is')] # printing original lists print("The original list 1 : " + str(test_list1)) print("The original list 1 : " + str(test_list2)) # using set() + "-" operator # filter repeated tuple res = list(set(test_list1) - set(test_list2)) # print result print("The filtered list of tuples : " + str(res))
The original list 1 : [('Geeks', 'for'), ('Geeks', 'is'), ('Computer', 'Science')] The original list 1 : [('Geeks', 'for'), ('Geeks', 'is')] The filtered list of tuples : [('Computer', 'Science')]
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