20 - Listas: componentes de tipo lista
Manejo de componenentes de una lista
Última actualización
¿Te fue útil?
Manejo de componenentes de una lista
Última actualización
¿Te fue útil?
Hasta ahora hemos trabajado con listas cuyos componentes son de tipo:
Enteros
Flotantes
Cadena de caracteres
Un ejemplo de estos:
notas=[7, 3, 4]
alturas = [1.23, 1.27, 0.94]
dias = ["miercoles", "jueves", "viernes"]
nota =[[3, 4], [2, 5], [1, 3]]
En la línea anterior hemos definido una lista de tres elementos de tipo lista, el primer elemento de la lista es otra lista de dos elementos de tipo entero. De forma similar los otros dos elementos de la lista notas son listas de dos elementos de tipo entero.
Crear una lista por asignación. La lista tiene que tener cuatro elementos. Cada elemento debe ser una lista de 3 enteros. Imprimir sus elementos accediendo de diferentes modos.
Para definir y crear por asignación una lista de listas tenemos:
list1=[[1,2,3],[4,5,6],[7,8,9]]
[1,2,3]
El segundo elemento de la variable lista es (y así sucesivamente):
[4,5,6]
La función print si le pasamos como parámetro el nombre de la lista nos muestra la lista completa por pantalla:
print(list1)
Aparece:
[[1,2,3],[4,5,6],[7,8,9]]
Cuando pasamos a la función print el primer elemento de la lista:
print(list1[0])
Nos muestra la lista contenida en la primer componente de la lista principal:
[1,2,3]
Si queremos acceder al primer entero almacenado en la lista contenida en la primer componente de la lista principal:
print(list1[0][0])
Nos muestra:
1
Para acceder mediante un for a todos los elementos de la lista contenida en la primer componente de la lista principal debemos codificar:
El resultado de len(list1[0]) es un 3 que es la cantidad de elementos que tiene la lista contenida en la primer componente de la lista principal.
Cada ciclo del for accedemos a: lista[0][0] cuando x vale 0, lista[0][1] cuando x vale 1 y lista[0][2] cuando x vale 2.
Mediante este ciclo podemos acceder a cada elemento y procesarlo.
Por último con el ciclo anidado f podemos acceder a cada elemento de la lista principal y mediante el for interno acceder a cada elemento entero de las listas contenidas en la lista principal:
Hemos resuelto el problema de tres formas.
La primer forma es acceder a cada elemento en forma secuencial, esto se resuelve de esta forma si tenemos que acceder a un pequeño número de elementos, es decir si la lista es pequeña:
list2=[[1,1,1,1,1], [2,2,2,2,2]]
sum1=list2[0][0]+list2[0][1]+list2[0][2]++list2[0][3]+list2[0][4]
sum2=list2[1][0]+list2[1][1]+list2[1][2]+list2[1][3]+list2[1][4]
La segunda forma es utilizar una estructura repetitiva para sumar todos los elementos de una lista (el primer subíndice siempre es 0 y el segundo varía con la variable f ):
La última forma planteada es utilizar una estructura repetitiva anidada que suma cada fila, el for externo (f) se repite 2 veces que es el tamaño de la variable "list2":
Crear una lista por asignación. La lista tiene que tener 5 elementos. Cada elemento debe ser una lista, la primera lista tiene que tener un elemento, la segunda dos elementos, la tercera tres elementos y así sucesivamente. Sumar todos los valores de las listas.
La forma más sencilla es utilizar dos ciclos repetitivos. El primero se repite tantas veces como elementos tenga la lista principal:
for k in range(len(list3)):
El segundo ciclo nos sirve para recorrer y acceder a cada elemento entero de cada lista:
for f in range (len(list3[k])):
suma+=list3[k][f]
La cantidad de veces que se repite el for interno depende de la cantidad de elementos que tiene la lista que estamos sumando en ese momento.
Se tiene la siguiente lista:
lista=[[200,7,85,8], [4,8,56,40], [67,90,21,1], [75,57]]
Se tiene la siguiente lista:
lista=[[4,12,5,66], [14,6,25], [3,4,5,67,89,23,1], [78,56]]
Imprimir la lista. Luego fijar con el valor cero todos los elementos mayores a 10 contenidos en todos los elementos de la variable "lista". Volver a imprimir la lista.
Crear una lista por asignación con la cantidad de elementos de tipo lista que usted desee. Luego imprimir el último elemento de la lista principal.
Al principio puede complicarse trabajar con listas de listas pero a medida que practiquemos esta estructura de datos veremos que podemos desarrollar algoritmos más complejos.
Queda claro que el primer elemento de lista es:
Recordemos que la función len retorna la cantidad de elementos que contiene una lista. En este caso le pasamos como parámetro list1[0] que hace referencia a la primer componente de la lista principal.
Crear una lista por asignación. La lista tiene que tener 2 elementos. Cada elemento debe ser una lista de 5 enteros. Calcular y mostrar la suma de cada lista contenida en la lista principal.
Lo primero que es importante notar que las listas contenidas en las lista principal no tienen porque ser del mismo tamaño.
Ha llegado una parte fundamental , que es el momento donde uno desarrolla individualmente un algoritmo para la resolución de problemas.
Imprimir la lista. Luego fijar con el valor cero todos los elementos mayores a 50 del primer elemento de "lista". Volver a imprimir la lista.
Nota : Inténtalo tu mism@, esta es la mejor forma de aprender o si quieres ver otro algoritmo para solucionar el mismo problema.