Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Eliminación de elementos de la lista Python: Listas

En Python, para eliminar elementos de una lista, existe el método .pop() y el operador del. Pero cambian la lista original, lo que puede provocar errores en el código:

# Si eliminas elementos en un bucle
# el orden de la iteración se rompe
numbers = [1, 0, 2, 0, 3, 4]
for i in range(len(numbers)):
    print('elem actual = ', numbers[i])
    if numbers[i] == 0:
        numbers.pop(i)

#=> elem actual =  1
#=> elem actual =  0
# 0
#=> elem actual =  0
# 0
#=> elem actual =  4
# IndexError: el índice de la lista está fuera de rango

En el ejemplo anterior, obtuvimos un error porque al eliminar un elemento, movemos el puntero más allá en la lista y saltamos elementos.

Sin embargo, la necesidad de eliminar elementos aparece con frecuencia. Y no se trata solo de eliminar un elemento, sino de varios a la vez siguiendo ciertas reglas. Por ejemplo, una operación común es compact, que consiste en eliminar los valores None de una lista. ¿Cómo hacerlo de manera correcta?

En la mayoría de los casos, modificar una lista implica crear una nueva lista que excluya los elementos eliminados. A continuación se muestra un ejemplo de implementación de la función compact()

def compact(coll):
    # Inicialización del resultado
    # Para una colección de entrada vacía, el resultado será una lista vacía
    result = []

    for item in coll:
        if item is not None:
            result.append(item)

    return result

print(compact([0, 1, False, None, True, 'wow', None]))
# => [0, 1, False, True, 'wow']
print(compact([]))
# => []

Lo más importante aquí es que la lista original, coll, no se modifica. En su lugar, se crea una nueva lista, result, que solo incluye los valores que cumplen con la condición.

Así es como debes entender la frase "eliminar algo de la lista". El código que utiliza una nueva lista es menos propenso a errores, más fácil de depurar y te brinda más posibilidades de análisis. Si algo falla, siempre puedes consultar la lista original. Además, puedes observar el proceso de llenado de la lista resultante, lo que te permite verificar fácilmente si las condiciones se están aplicando correctamente.

Básicamente, el código anterior es un ejemplo de agregación. La diferencia es que, en lugar de devolver un tipo primitivo como en los ejemplos anteriores, aquí el resultado es una lista, y eso está perfecto. Como verás más adelante, el resultado puede ser incluso una estructura más compleja. La operación de reducir una lista eliminando elementos según ciertas condiciones se conoce como filtrado.

Para acceder completo a curso necesitas un plan básico

El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY