21 - Listas: carga por teclado de componentes de tipo lista
Carga por teclado de una lista
Última actualización
¿Te fue útil?
Carga por teclado de una lista
Última actualización
¿Te fue útil?
En el concepto anterior vimos que fácilmente podemos definir por asignación una lista cuyas componentes sean también listas:
lista=[[1,2,3] , [4,5], [5,7]]
En muchas situaciones debemos crear una nueva lista ingresando los datos por teclado o por operaciones del mismo programa.
Crear y cargar una lista con los nombres de tres alumnos. Cada alumno tiene dos notas, almacenar las notas en una lista paralela. Cada componente de la lista paralela debe ser también una lista con las dos notas. Imprimir luego cada nombre y sus dos notas.
Si cargáramos los datos por asignación sería algo parecido a esto:
estudiantes=["Arbey", "Ana", "Luisa"]
notas=[[3,4], [2,4],[3,5] ]
En la componente 0 de la lista estudiantes tenemos almacenado el nombre "Arbey" y como son listas paralelas en la componente 0 de la lista notas tenemos almacenado una lista con las dos notas 3 y 4.
Nuestro objetivo como lo pide el problema es cargar los datos por teclado.
La creación de las dos listas no difiere una de otra:
listName=[]
listNote=[]
En la estructura repetitiva for procedemos a cargar un nombre y agregarlo a la lista en forma similar como lo hemos hecho en conceptos anteriores:
for f in range(3):
listName.append(input(f"Enter stundent's name{f+1}: "))
note1=float(input(f"Enter {listName[f]} note1: ")) note2=float(input(f"Enter {listName[f]} note2: "))
Realizar la carga de los nombres de empleados y los tres sueldos por cada empleado.
Generar una lista que contenga el ingreso acumulado en sueldos en los últimos 3 meses para cada empleado.
En este problema definiremos tres listas:
Una lista para almacenar los nombres de los empleados: nombres = ["juan", "estiven", "sara"]
Una lista paralela a la anterior para almacenar los sueldos en los últimos tres meses por cada empleado: sueldos =[[300,400,500], [600,600,700], [200,400,800]]
Otra lista paralela donde almacenamos el total de sueldos cobrados por cada empleado que resulta de sumar los tres sueldos de cada empleado contenidos en la lista sueldos: totalsueldos=[[1200],[1900],[1400] ]
Definimos 3 listas:
listName=[]
listSalary=[]
listTotalSalary=[]
En el primer for realizamos la carga de cada nombre de empleado y sus tres últimos sueldos, en la lista nombres añadimos strings y en la lista sueldos añadimos otra lista con tres enteros que representan los sueldos:
En el segundo ciclo repetitivo generamos automáticamente la lista de total sueldos (es decir no cargamos por teclado), este valor resulta de sumar los tres sueldos de cada empleado que se encuentran en cada una de las listas contenidas en la lista sueldos:
Finalmente el problema requiere mostrar el nombre del empleado que recaudó más en sueldos en los últimos tres meses. Iniciamos dos variables previas al for indicando en una la posición de importe en sueldos mayor y en otra dicho importe. Hacemos la suposición antes de ingresar al for que el mayor está en la posición 0:
Por ejemplo si el operador carga un 2 y un 4 significa que debemos crear una lista similar a:
lista=[[1,2,3,4], [5,6,7,8]]
El primer for se repetirá tantas veces como indica el primer valor ingresado por teclado almacenado en la variable "lengthList", cada vuelta de este for se crea un elemento en la "subListNumber".
En el for interior procedemos a cargar tantos valores como lo indicamos en la variable "lengthsublist" y los vamos añadiendo en la lista vacía(sublistNumber) que creamos antes de este for:
Finalmente para sumar todos los elementos enteros almacenados en "listNumber" debemos disponer estructuras repetitivas anidadas:
El for de las "k" se repite tantas veces como elementos tenga "listNumber" y el for de las x se repite tantas veces como elementos tenga la lista en la posición k.
Un ejemplo si se define por asignación:
Como son listas paralelas podemos decir que la familia cuyos padres son "juan" y "ana" tiene tres hijos llamados "marcos", "alberto", "silvia". La segunda familia no tiene hijos y la tercera tiene solo uno.
Comenzamos definiendo las dos listas:
listParents=[]
listChildren=[]
El primer for es para cargar y crear cada elemento de la lista "padres" (listParents), crear una elemento de la lista hijos(listChildren) con una lista vacía y solicitar que se cargue cuantos hijos tiene la familia:
El for interno se ingresan los nombres de los hijos y se agregan a la lista hijos en la posición respectiva. El for interno puede llegar a no ejecutarse si se ingresa un 0 en cantidad de hijos:
Para mostrar la cantidad de hijos que tiene un determinado padre llamamos a la función len de cada una de las sublistas contenidas en la lista hijos:
Cargar por teclado los nombres de los paises y las temperaturas medias mensuales.
Imprimir los nombres de las paises y las temperaturas medias mensuales de las mismas.
Calcular la temperatura media trimestral de cada país.
Imprimr los nombres de los paises y las temperaturas medias trimestrales.
Imprimir el nombre del pais con la temperatura media trimestral mayor.
Definir una lista y almacenar los nombres de 3 empleados. Por otro lado definir otra lista y almacenar en cada elemento una sublista con los números de días del mes que el empleado faltó. Imprimir los nombres de empleados y los días que faltó. Mostrar los empleados con la cantidad de inasistencias. Finalmente mostrar el nombre o los nombres de empleados que faltaron menos días.
Desarrollar un programa que cree una lista de 50 elementos. El primer elemento es una lista con un elemento entero, el segundo elemento es una lista de dos elementos etc. La lista debería tener esta estructura y asignarle esos valores a medida que se crean los elementos:
[[1], [1,2], [1,2,3], [1,2,3,4], [1,2,3,4,5], etc....]
Lo nuevo se presenta cuando queremos añadir elementos a la lista notas, lo hacemos con el mismo método append pero le pasamos como parámetro una lista con dos elementos:
Se tiene que cargar la siguiente información: · Nombres de 3 empleados. Ingresos en concepto de sueldo, cobrado por cada empleado, en los últimos 3 meses. Confeccionar el programa para:
Mostrar por pantalla el total pagado en sueldos a cada empleado en los últimos 3 meses.
Obtener el nombre del empleado que tuvo el mayor ingreso acumulado.
Es importante notar que estos datos no los cargaremos por asignación sino los cargaremos por teclado a las dos primeras listas y la tercera la generaremos extrayendo los datos de la lista sueldos.
Imprimimos ahora el nombre del empleado seguido por el ingreso total en sueldos de los últimos tres meses:
Solicitar por teclado dos enteros. El primer valor indica la cantidad de elementos que crearemos en la lista. El segundo valor indica la cantidad de elementos que tendrá cada una de las listas internas a la lista principal. Mostrar la lista y la suma de todos sus elementos.
Lo primero que hacemos en este problema además de definir la lista es cargar dos enteros por teclado:
Definir dos listas de 3 elementos. La primer lista cada elemento es una sublista con el nombre del padre y la madre de una familia. La segunda lista está constituida por listas con los nombres de los hijos de cada familia. Puede haber familias sin hijos. Imprimir los nombres del padre, la madre y sus hijos. También imprimir solo el nombre del padre y la cantidad de hijos que tiene dicho padre.
Para imprimir los nombres de ambos padres y sus hijos también implementamos un for anidado:
Ha llegado una parte fundamental , que es el momento donde uno desarrolla individualmente un algoritmo para la resolución de problemas. El tiempo a dedicar a esta sección ejercicios propuestos debe ser mucho mayor que el empleado a la sección de ejercicios resueltos. La experiencia dice que debemos dedicar el 80% del tiempo a la resolución individual de problemas y el otro 20% al análisis y codificación de problemas ya resueltos por otras personas.
Se desea saber la temperatura media trimestral de cuatro paises. Para ello se tiene como dato las temperaturas medias mensuales de dichos paises. Se debe ingresar el nombre del país y seguidamente las tres temperaturas medias mensuales. Seleccionar las estructuras de datos adecuadas para el almacenamiento de los datos en memoria.
Nota : Inténtalo tu mism@, esta es la mejor forma de aprender o si quieres ver otro algoritmo para solucionar el mismo problema.