Hemos visto que una lista la podemos iniciar por asignación indicando sus elementos.
lista=[10, 20, 30, 40]
También podemos agregarle elementos al final mediante el método append:
lista.append(120)
Si ahora imprimimos la lista tenemos como resultado:
[10, 20, 30, 40, 120]
Otra característica fundamental de las listas en Python es que podemos eliminar cualquiera de sus componentes llamando al método pop e indicando la posición del elemento a borrar:
lista.pop(0)
Ahora si imprimimos la lista luego de eliminar el primer elemento el resultado es:
[20, 30, 40, 120]
Otra cosa que hay que hacer notar que cuando un elemento de la lista se elimina no queda una posición vacía, sino se desplazan todos los elementos de la derecha una posición.
El método pop retorna el valor almacenado en la lista en la posición indicada, aparte de borrarlo.
lista=[10, 20, 30, 40] print(lista.pop(0)) # imprime un 10
Crear una lista por asignación con 5 enteros. Eliminar el primero, el tercero y el último de la lista.
lista=[10, 20, 30, 40, 50] print(lista) lista.pop(0) lista.pop(1) lista.pop(2) print(lista)
Parecería que con esas tres llamadas al método pop se eliminan los tres primeros elementos pero no es así, si imprimimos cada vez que borramos uno veremos que estamos borrando el primero, tercero y quinto.
lista=[10, 20, 30, 40, 50] print(lista) # se imprime [10, 20, 30, 40, 50] lista.pop(0) print(lista) # se imprime [20, 30, 40, 50] lista.pop(1) print(lista) # se imprime [20, 40, 50] lista.pop(2) # se imprime [20, 40] print(lista)
Crear una lista y almacenar 10 enteros pedidos por teclado. Eliminar todos los elementos que sean iguales al número entero 5.
lista=[] for x in range(10): valor=int(input("Ingrese valor:")) lista.append(valor) print(lista) posicion=0 while posicion<len(lista): if lista[posicion]==5: lista.pop(posicion) else: posicion=posicion+1 print(lista)
Mediante un for cargamos 10 elementos en la lista:
lista=[] for x in range(10): valor=int(input("Ingrese valor:")) lista.append(valor)
Como es posible que se eliminen 0, 1, 2 etc. elementos de la lista utilizamos un ciclo while (no podemos usar un for, ya que el contador del mismo no indicará correctamente el subindice a analizar)
Llevamos un contador llamado "posicion" que nos indica que elemento de la lista estamos verificando en el if, en el caso que se debe borrar llamamos al método pop pasando el contador y no incrementamos en uno el contador "posicion" ya que los elementos de la derecha se desplazan una posición a izquierda.
En el caso que no se debe borrar se incrementa en uno el contador "posicion" para analizar el siguiente elemento de la lista en la próxima vuelta del ciclo:
posicion=0 while posicion<len(lista): if lista[posicion]==5: lista.pop(posicion) else: posicion=posicion+1
Si ejecutamos y cargamos tres cincos en distintas posiciones de la lista tenemos como resultado:
Para eliminar elementos de una lista también es empleada la función "del" pasando como parámetro la referencia de la componente a eliminar:
lista=[10, 20, 30, 40, 50] print(lista) del(lista[0]) del(lista[1]) del(lista[2]) print(lista) # 20 40
ejercicio110.py empleados=[] sueldos=[] cant=int(input("Cuantos empleados tiene la empresa:")) for x in range(cant): nom=input("Ingrese el nombre:") empleados.append(nom) su=int(input("Ingrese el importe del sueldo:")) sueldos.append(su) print("Listado completo de empleados") for x in range(len(sueldos)): print(empleados[x],sueldos[x]) posicion=0 while posicion<len(sueldos): if sueldos[posicion]>10000: sueldos.pop(posicion) empleados.pop(posicion) else: posicion=posicion+1 print("Listado de empleados que cobran 10000 o menos") for x in range(len(sueldos)): print(empleados[x],sueldos[x]) ejercicio111.py lista1=[] for x in range(5): valor=int(input("Ingrese valor:")) lista1.append(valor) print("Lista original") print(lista1) lista2=[] posicion=0 while posicion<len(lista1): if lista1[posicion]>=10: lista2.append(lista1.pop(posicion)) else: posicion=posicion+1 print("Lista despues de borrar los elementos mayores o iguales a 10") print(lista1) print("Lista generada con los elementos mayores o iguales a 10") print(lista2)