martes, 21 de septiembre de 2010

Nota python: Eliminar elementos repetidos de una lista

Necesitaba eliminar elementos repetidos de una lista, la primera aproximación sería recorrer la lista e ir comprobando si los elementos están repetidos. Decidí buscar otras opciones y he encontrado dos formas de eliminar elementos repetidos de una lista. Ninguno de estas dos formas respeta el orden inicial de la lista.

Uso del tipo de dato set (conjunto de datos mutable, sin orden, que no contiene duplicados). Convertimos primero la lista a tipo set y luego volvemos a convertir el tipo set en lista.

>>>lst = [1, 1, 3, 2]
>>> lst
[1, 1, 3, 2]
>>> lst = list(set(lst))
>>> lst
[1, 2, 3]

En el siguiente ejemplo hacemos uso de los diccionarios para eliminar los elementos repetidos. Primero creamos un diccionrio donde las claves están almacenadas en la lista. Depués obtenemos las claves del diccionario que acabamos de crear.

>>> lst = [1, 1, 3, 2]
>>> lst
[1, 1, 3, 2]
>>> lst = dict.fromkeys(lst)
>>> lst
{1: None, 2: None, 3: None}
>>> lst = lst.keys()
>>> lst
[1, 2, 3]

1 comentario:

Qualayclica dijo...

quello che stavo cercando, grazie

Publicar un comentario