15 - Listas: carga por teclado de sus elementos

Una lista en Python es una estructura mutable (es decir puede ir cambiando durante la ejecución del programa)

Hemos visto que podemos definir una lista por asignación indicando entre corchetes los valores a almacenar:

lista=[10, 20, 40]

Una lista luego de definida podemos agregarle nuevos elementos a la colección. La primera forma que veremos para que nuestra lista crezca es utilizar el método append que tiene la lista y pasar como parámetro el nuevo elemento:

lista=[10, 20, 30]
print(len(lista))    # imprime un 3
lista.append(100)
print(len(lista))    # imprime un 4
print(lista[0])      # imprime un 10
print(lista[3])      # imprime un 100

Definimos una lista con tres elementos:

lista=[10, 20, 30]

Imprimimos la cantidad de elementos que tiene la lista, en nuestro caso lo definimos con 3:

print(len(lista))    # imprime un 3

Agregamos una nuevo elemento al final de la lista llamando al método append:

lista.append(100)

Si llamamos nuevamente a la función len y le pasamos el nombre de nuestra lista ahora retorna un 4:

print(len(lista))    # imprime un 4

Imprimimos ahora el primer y cuarto elemento de la lista (recordar que se numeran a partir de cero):

print(lista[0])      # imprime un 10
print(lista[3])      # imprime un 100

Problema 1:

Definir una lista vacía y luego solicitar la carga de 5 enteros por teclado y añadirlos a la lista. Imprimir la lista generada.

Programa: ejercicio75.py

Ver video

#definimos una lista vacia
lista=[]
#disponemos un ciclo de 5 vueltas
for x in range(5):
    valor=int(input("Ingrese un valor entero:"))
    lista.append(valor)

#imprimimos la lista    
print(lista)

El algoritmo propuesto crea primero una lista vacía (debemos asignar los corchetes de apertura y cerrado sin contenido):

lista=[]

Luego mediante un for (podemos utilizar un while si queremos) solicitamos en forma sucesiva la carga de un entero por teclado y procedemos a agregarlo al final de la lista llamando al método append:

for x in range(5):
    valor=int(input("Ingrese un valor entero:"))
    lista.append(valor)

Finalmente mostramos los elementos de la lista creada:

print(lista)

Problema 2:

Realizar la carga de valores enteros por teclado, almacenarlos en una lista. Finalizar la carga de enteros al ingresar el cero. Mostrar finalmente el tamaño de la lista.

Programa: ejercicio76.py

Ver video

lista=[]
valor=int(input("Ingresar valor (0 para finalizar):"))
while valor!=0:
    lista.append(valor)
    valor=int(input("Ingresar valor (0 para finalizar):"))

print("Tamano de la lista:")
print(len(lista))

En este problema la lista crecerá hasta que el operador ingrese el valor cero. La carga del primer valor se efectúa antes del ciclo while ya que la condición depende del valor ingresado:

valor=int(input("Ingresar valor (0 para finalizar):"))

Luego dentro del ciclo while procedemos a agregar al final de la lista el valor ingresado y solicitar la carga del siguiente valor:

while valor!=0:
    lista.append(valor)
    valor=int(input("Ingresar valor (0 para finalizar):"))

Cuando salimos del ciclo repetitivo procedemos a obtener el tamaño de la lista mediante la función len:

print(len(lista))

Problemas propuestos

  • Almacenar en una lista los sueldos (valores float) de 5 operarios. Imprimir la lista y el promedio de sueldos.

    Ver video

  • Cargar por teclado y almacenar en una lista las alturas de 5 personas (valores float)
    Obtener el promedio de las mismas. Contar cuántas personas son más altas que el promedio y cuántas más bajas.

    Ver video

  • Una empresa tiene dos turnos (mañana y tarde) en los que trabajan 8 empleados (4 por la mañana y 4 por la tarde) Confeccionar un programa que permita almacenar los sueldos de los empleados agrupados en dos listas.
    Imprimir las dos listas de sueldos.

    Ver video

Solución
ejercicio77.py

sueldos=[]
suma=0
for x in range(5):
    valor=float(input("Ingrese el sueldo del operario:"))
    sueldos.append(valor)
    suma=suma+valor

print("Lista de sueldos")
print(sueldos)
promedio=suma/5
print("Promedio de sueldos")
print(promedio)




ejercicio78.py

alturas=[]
suma=0
for x in range(5):
    valor=float(input("Ingrese la altura:"))
    alturas.append(valor)
    suma=suma+valor

print("Las alturas ingresadas son")
print(alturas)
promedio=suma/5
print("El promedio de las alturas es")
print(promedio)

altas=0
bajas=0
for x in range(5):
    if alturas[x]>promedio:
       altas=altas+1
    else:
        if alturas[x]<promedio:
            bajas=bajas+1

print("La cantidad de personas mas bajas al promedio es")
print(bajas)
print("La cantidad de personas mas altas al promedio es")
print(altas)




ejercicio79.py

sueldosman=[]
print("Sueldos turno manana")
for x in range(4):
    valor=float(input("Ingrese sueldo:"))
    sueldosman.append(valor)

sueldostar=[]
print("Sueldos turno tarde")
for x in range(4):
    valor=float(input("Ingrese sueldo:"))
    sueldostar.append(valor)

print("Turno manana")
print(sueldosman)
print("Turno tarde")
print(sueldostar)