Tecnología

Inicio

Cómo eliminar duplicados de una secuencia en Python

En Python, puede programar una función para eliminar los duplicados de una secuencia utilizando varios métodos, pero dependiendo de qué clase de tipos de datos contiene una secuencia, un método puede ser más rápido que otro, pero no puede trabajar tan a menudo. Por ejemplo, es posible programar una función que utiliza un diccionario con una colección de claves únicas para comprobar si hay duplicados rápidamente, pero también puede dejar de funcionar. Por otro lado, también puede programar una función que comprueba de forma recursiva cada elemento de una secuencia de elementos en contra de otra secuencia temporal. Esto siempre trabaja para eliminar duplicados, pero lleva mucho más tiempo.

Instrucciones

1 Abra el terminal de Python o línea de comandos.

2 Escriba lo siguiente:

def removeDuplicatesOne (mySeq):

tempSeq = {}

tratar:

para x en mySeq:

tempSeq [x] = 1

a excepción TypeError:

del tempSeq

más:

tempSeq.keys volver ()

Recuerde que debe aplicar sangría correctamente para evitar un error de sintaxis. Esto define una función y acepta una secuencia como parámetro. Se utiliza un diccionario para comprobar la secuencia proporcionada a la función de duplicados y tiendas de los miembros no duplicados en una secuencia temporal, a continuación, devuelve una secuencia ordenada.

3 Escriba lo siguiente:

def removeDuplicatesTwo (mySeq):

tempSeq = []

para x en mySeq:

si x no en tempSeq:

tempSeq.append (x)

volver tempSeq

Esto define una función que utiliza un algoritmo más lento que el anterior, pero más a menudo funciona también. Se crea una secuencia temporal, a continuación, simplemente gira a través de cada elemento de la secuencia y los controles existentes para ver si existe ese elemento en la temporal. Si no es así, se añade que el artículo a la secuencia temporal. Si es así, se salta que comienza entonces de nuevo con el siguiente elemento. Devuelve una secuencia sin clasificar.

4 Escriba lo siguiente:

removeDuplicatesOne ([4,2,5,1,6,3,4,2,6,4,2,6]):

La secuencia se pasa a la función y los duplicados se eliminan. Python devuelve la siguiente secuencia: [1,2,3,4,5,6].

5 Escriba lo siguiente:

removeDuplicatesTwo ([4,2,5,1,6,3,4,2,6,4,2,6]):

La secuencia se pasa a la función y los duplicados se eliminan. Python devuelve la siguiente secuencia: [4,2,5,1,6,3].

Consejos y advertencias

  • Es posible combinar estas dos funciones en una sola función. Cualquier llamada a la función dará lugar a que el intento del primer método de eliminación de duplicados primero y si eso no funciona, se va al segundo método. En ocasiones, esto toma un poco más de tiempo y requiere un trabajo extra de la función, pero aumenta la probabilidad general de éxito, sobre todo cuando no se sabe si la secuencia se pasa trabajará con el primer método.