A veces, mientras trabajamos con datos, podemos tener un problema en el que requerimos encontrar los registros de diferencia entre dos listas que recibimos. Este es un problema muy común y los registros generalmente ocurren como una tupla. Analicemos ciertas formas en que se puede resolver este problema.
Método #1: Uso de la comprensión de listas
La comprensión de listas se puede optar como método para realizar esta tarea en una línea en lugar de ejecutar un bucle para encontrar los elementos de diferencia. En esto, solo iteramos para una sola lista y verificamos si algún elemento ocurre en otro.
# Python3 code to demonstrate working of # Difference in Record Lists # Using list comprehension # Initializing lists test_list1 = [('gfg', 1), ('is', 2), ('best', 3)] test_list2 = [('i', 3), ('love', 4), ('gfg', 1)] # printing original lists print("The original list 1 is : " + str(test_list1)) print("The original list 2 is : " + str(test_list2)) # Intersection in Tuple Records Data # Using list comprehension res = [ele1 for ele1 in test_list1 for ele2 in test_list2 if ele1 == ele2] res = list(set(res) ^ set(test_list1)) # printing result print("The difference of data records is : " + str(res))
The original list 1 is : [('gfg', 1), ('is', 2), ('best', 3)] The original list 2 is : [('i', 3), ('love', 4), ('gfg', 1)] The difference of data records is : [('best', 3), ('is', 2)]
Método n.º 2: Uso set.intersection()
de operaciones de conjuntos +
Esta tarea también se puede realizar de forma más pequeña utilizando la intersección de conjuntos genéricos. En esto, primero convertimos la lista de registros en un conjunto y luego realizamos su intersección usando la intersection(). Luego, el resultado se calcula tomando un elemento poco común del resultado de la primera lista.
# Python3 code to demonstrate working of # Difference in Record Lists # Using set.intersection() + set operations # Initializing lists test_list1 = [('gfg', 1), ('is', 2), ('best', 3)] test_list2 = [('i', 3), ('love', 4), ('gfg', 1)] # printing original lists print("The original list 1 is : " + str(test_list1)) print("The original list 2 is : " + str(test_list2)) # Difference in Record Lists # Using set.intersection() + set operations res = list(set(test_list1).intersection(set(test_list2))) res = list(set(res) ^ set(test_list1)) # printing result print("The difference of data records is : " + str(res))
The original list 1 is : [('gfg', 1), ('is', 2), ('best', 3)] The original list 2 is : [('i', 3), ('love', 4), ('gfg', 1)] The difference of data records is : [('best', 3), ('is', 2)]
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