Python | Comprobar si dos listas son idénticas

Este artículo trata sobre la tarea de comprobar si dos listas desordenadas contienen elementos exactamente similares en una posición exactamente similar, es decir, comprobar si dos listas son exactamente iguales. Esta es una utilidad bastante útil y se puede utilizar en la programación día a día.

Método 1: el uso list.sort()de un ==operador
sort() junto con ==el operador puede lograr esta tarea. Primero ordenamos la lista, de modo que si ambas listas son idénticas, entonces tienen elementos en la misma posición. Pero esto no tiene en cuenta el orden de los elementos en la lista.

# Python 3 code to demonstrate 
# check if list are identical
# using sort() + == operator
  
# initializing lists 
test_list1 = [1, 2, 4, 3, 5]
test_list2 = [1, 2, 4, 3, 5]
  
# printing lists
print ("The first list is : " + str(test_list1))
print ("The second list is : " + str(test_list2))
  
# sorting both the lists
test_list1.sort()
test_list2.sort()
  
# using == to check if 
# lists are equal
if test_list1 == test_list2:
    print ("The lists are identical")
else :
    print ("The lists are not identical")

Producción :

The first list is : [1, 2, 4, 3, 5]
The second list is : [1, 2, 4, 3, 5]
The lists are identical

Método 2: usandocollections.Counter()
el uso Counter()de, generalmente podemos obtener la frecuencia de cada elemento en la lista, verificándolo, para ambas listas, podemos verificar si dos listas son idénticas o no. Pero este método también ignora el orden de los elementos en la lista y solo tiene en cuenta la frecuencia de los elementos.

# Python 3 code to demonstrate 
# check if list are identical
# using collections.Counter()
import collections
  
# initializing lists 
test_list1 = [1, 2, 4, 3, 5]
test_list2 = [1, 2, 4, 3, 5]
  
# printing lists
print ("The first list is : " + str(test_list1))
print ("The second list is : " + str(test_list2))
  
# using collections.Counter() to check if 
# lists are equal
if collections.Counter(test_list1) == collections.Counter(test_list2):
    print ("The lists are identical")
else :
    print ("The lists are not identical")

Producción :

The first list is : [1, 2, 4, 3, 5]
The second list is : [1, 2, 4, 3, 5]
The lists are identical

Método 3: Usandosum() + zip() + len()
Usando sum() + zip(), podemos obtener la suma de una de las listas como la suma de 1 si ambos índices en dos listas tienen elementos iguales, y luego comparar ese número con el tamaño de otra lista. Esto también requiere primero verificar si dos listas son iguales antes de este cálculo. También verifica el pedido.

# Python 3 code to demonstrate 
# check if list are identical
# using sum() + zip() + len()
  
# initializing lists 
test_list1 = [1, 2, 4, 3, 5]
test_list2 = [1, 2, 4, 3, 5]
  
# printing lists
print ("The first list is : " + str(test_list1))
print ("The second list is : " + str(test_list2))
  
# using sum() + zip() + len() to check if 
# lists are equal
if len(test_list1)== len(test_list2) and len(test_list1) == sum([1 for i, j in zip(test_list1, test_list2) if i == j]):
    print ("The lists are identical")
else :
    print ("The lists are not identical")

Producción :

The first list is : [1, 2, 4, 3, 5]
The second list is : [1, 2, 4, 3, 5]
The lists are identical

Método 4: Usandoreduce() + map()
cuidadosamente el poder de acoplamiento de map() los valores hash y la utilidad de reduce(), podemos lograr esta tarea de verificar que la igualdad de dos listas sea idéntica. Esto también tiene en cuenta el orden de la lista.

# Python 3 code to demonstrate 
# check if list are identical
# using map() + reduce()
import functools
  
# initializing lists 
test_list1 = [1, 2, 4, 3, 5]
test_list2 = [1, 2, 4, 3, 5]
  
# printing lists
print ("The first list is : " + str(test_list1))
print ("The second list is : " + str(test_list2))
  
# using map() + reduce() to check if 
# lists are equal
if functools.reduce(lambda i, j : i and j, map(lambda m, k: m == k, test_list1, test_list2), True) : 
    print ("The lists are identical")
else :
    print ("The lists are not identical")

Producción :

The first list is : [1, 2, 4, 3, 5]
The second list is : [1, 2, 4, 3, 5]
The lists are identical

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 *