Python eliminar elementos duplicados de una lista

Document 对象参考手册Ejemplos de Python3

En este capítulo aprenderemos cómo eliminar elementos duplicados de una lista.

Los puntos de conocimiento son:

  • Conjuntos en Python: un conjunto (set) es una secuencia desordenada de elementos únicos.

  • Listas en Python: una lista es una secuencia finita de elementos de datos, es decir, una colección de elementos de datos ordenados en un cierto orden lineal. Las operaciones básicas realizadas sobre esta estructura de datos incluyen búsqueda, inserción y eliminación de elementos.

Ejemplo

list_1 = [1, 2, 1, 4, 6]

print(list(set(list_1)))

Al ejecutar el código anterior, el resultado es:

[1, 2, 4, 6]

En el ejemplo anterior, primero convertimos la lista en un conjunto y luego la volvemos a convertir en una lista. Un conjunto no puede tener elementos duplicados, por lo que set() elimina los elementos duplicados.

Si necesita mantener el orden de los elementos en la lista original, puede usar un conjunto auxiliar para realizar un seguimiento de los elementos ya vistos y luego construir una nueva lista.

Ejemplo

# Usar un conjunto auxiliar para eliminar duplicados manteniendo el orden
def remove_duplicates(lst):
    seen = set()
    unique_list = []
    for item in lst:
        if item not in seen:
            seen.add(item)
            unique_list.append(item)
    return unique_list

# Ejemplo
original_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = remove_duplicates(original_list)
print(unique_list)  # Salida: [1, 2, 3, 4, 5]

Usar dict.fromkeys()

El método dict.fromkeys() también se puede usar para eliminar duplicados y mantener el orden, porque los diccionarios mantienen el orden de inserción en Python 3.7 y versiones posteriores.

Ejemplo

# Usar dict.fromkeys() para eliminar duplicados manteniendo el orden
def remove_duplicates(lst):
    return list(dict.fromkeys(lst))

# Ejemplo
original_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = remove_duplicates(original_list)
print(unique_list)  # Salida: [1, 2, 3, 4, 5]

Al ejecutar el código anterior, el resultado es:

[1, 2, 3, 4, 5]

Usar comprensión de listas

La comprensión de listas combinada con condiciones también puede lograr la eliminación de duplicados.

Ejemplo

# Eliminar duplicados usando comprensión de listas
def remove_duplicates(lst):
    unique_list = []
    [unique_list.append(item) for item in lst if item not in unique_list]
    return unique_list

# Ejemplo
original_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = remove_duplicates(original_list)
print(unique_list)  # Salida: [1, 2, 3, 4, 5]

Eliminar elementos duplicados en dos listas

En el siguiente ejemplo, se eliminan los elementos que existen en ambas listas.

Ejemplo

list_1 = [1, 2, 1, 4, 6]
list_2 = [7, 8, 2, 1]

print(list(set(list_1) ^ set(list_2)))

Primero, use set() para convertir las dos listas en dos conjuntos, con el fin de eliminar los elementos duplicados en las listas.

Luego, use^el operador para obtener la diferencia simétrica de las dos listas.

Al ejecutar el código anterior, el resultado es:

[4, 6, 7, 8]

Primero, convierta las dos listas en dos conjuntos para eliminar los duplicados de cada lista.

Luego,^se obtiene la diferencia simétrica de las dos listas (excluyendo los elementos superpuestos de los dos conjuntos).

Document 对象参考手册Ejemplos de Python3

Otras extensiones