Eliminar elemento repetido de una lista en Python

Las listas en Python son objetos dinámicos, admiten valores de diferentes tipos y poseen diferentes métodos que nos permiten realizar una variada cantidad de operaciones, como se explica en Listas en Python.

Descripción del tema: dada una lista de números, algunos repetidos, se le pregunta al usuario cuál desea eliminar y el programa debe eliminar todos los elementos de la lista que sean igual al número ingresado por el usuario. El programa debe mostrar en pantalla primero la lista actual con los elementos que posee.

Código fuente
#!/usr/bin/env python

def removeItems(lst, item):
    for i in lst:
        if i == item:
            lst.remove(item)
    return lst

lst = [2, 90, 89, 2, 5, 101, 90, 35, 2, 43, 89, 101, 5, 89, 90, 5]

print("Lista actual: {}".format(lst))

item = int(input("\nIngrese el elemento que desea eliminar: "))

print("Lista modificada: {}".format(removeItems(lst, item)))

Para recordar: La línea #!/usr/bin/env python es muy famosa en todos los sistemas Tipo Unix, se llama Shebang y permite ejecutar programas que requieren de un intérprete, directamente sobre la línea de comandos sin necesidad de escribir el nombre del intérprete; por ejemplo, ./EliminarElemento.py en lugar de python EliminarElemento.py.

Función removeItems()
def removeItems(lst, item):
    for i in lst:
        if i == item:
            lst.remove(item)
    return lst

Esta función contiene todo lo necesario para cumplir su labor, recibe 2 argumentos, el primero corresponde a la lista que contiene los elementos y el segundo es el elemento que deseamos eliminar; llamados lst e items.

Iterando sobre la lista
for i in lst:
    if i == item:
        lst.remove(item)

Iteramos sobre la lista con el bucle for y cada elemento es asignado a la variable i. La sentencia if evalúa si el elemento de la variable i es el mismo de la variable item, si son iguales, entonces se eliminamos el elemento usando el método .remove() y le pasamos como argumento el elemento que deseamos eliminar de la lista.

Devolviendo la lista
return lst

Por último retornamos la lista sin el elemento ingresado por el usuario y los elementos repetidos.

Creando lista
lst = [2, 90, 89, 2, 5, 101, 90, 35, 2, 43, 89, 101, 5, 89, 90, 5]

Para este tema he creado una lista con valores predefinidos que pueden estar repetidos, pero también se puede crear con valores al azar o ingresados por el usuario o quizas una lista generada del análisis hecho a otras fuentes de datos.

Mostrando lista actual
print("Lista actual: {}".format(lst))

Antes de realizar cualquier operación, le mostramos al usuario que valores se encuentran en la lista actual. El método .format() formatea el string reemplazando el par de «{}» por el contenido que se encuentra en la lista.

Solicitando y leyendo el elemento a eliminar
item = int(input("\nIngrese el elemento que desea eliminar: "))

Con la función input() el programa solicita y lee el elemento que el usuario desea eliminar, luego lo convertimos con la función int() en tipo entero debido a que la función input lee todo en tipo string y se asigna el valor a la variable item.

Llamando a la función removeItems() y mostrando el resultado
print("Lista modificada: {}".format(removeItems(lst, item)))

Primero es llamada la función removeItems() pasando la lista y el elemento que se desea eliminar, nos devuelve como resultado la lista modificada sin el elemento ingresado por el usuario y sus elementos repetidos; y luego mostramos el resultado en pantalla con la función print().

Ejecutando el programa

Al ejecutar el programa, nos muestra un resultado similar a este:

[fixedtorres@linuxero]$ ./EliminarElementoDeUnaLista.py
Lista actual: [2, 90, 89, 2, 5, 101, 90, 35, 2, 43, 89, 101, 5, 89, 90, 5]

Ingrese el elemento que desea eliminar: 2
Lista modificada: [90, 89, 5, 101, 90, 35, 43, 89, 101, 5, 89, 90, 5]
[fixedtorres@linuxero]$ 

Nos muestra la lista actual, solicita que ingresemos el elemento que deseamos eliminar y nos devuelve la lista sin el elemento que ingresamos, y si hay repetidos, los elimina. En este caso se elimina el 2 que se repite 3 veces.



Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *