Hasta ahora, en el curso de python, hemos visto variables que almacenaban un único valor pero, en python existen un tipo de variables que permiten almacenar una colección de datos y acceder después por medio de un subíndice. Estas variables se llaman listas (vectores).
Vamos a utilizar las listas para modelar datos compuestos pero, con la peculiaridad de que la cantidad y valor de estos datos puede variar a lo largo del tiempo.
Una lista, es una secuencia de valores encerrados entre corchetes y separados por comas, además pueden contener valores de cualquier tipo, string, enteros, otras listas, etc.
Para crear una lista al igual que en el resto de variables podemos hacerlo por asignación o por teclado.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# una lista puede ser de distintos valores # enteros lista1=[2, 4, 6, 8] # flotantes lista2=[3.14, 2.4, 6.78] # strings lista3=["ana","alma","jack"] # un poco de todo lista4=["jaime", 4, 3.2] # imprimimos la lista completa print(lista1) # o solo un valor de ella print(lista2[0]) |
Como vemos, en una lista podemos incluir cualquier tipo de dato que queramos e incluso, otra lista
1 |
lista1=[2, 4, 6, 8,["hola",3] ] |
Y podemos imprimir la lista completa o tan sólo un valor de ella, como hacíamos con los string. En el caso de que tuviéramos un lista dentro de otro lista, lo haríamos de la siguiente forma
1 |
print(lista1[4][0]) |
Como vemos accederíamos al segundo lista indicando en un segundo subíndice, así infinitamente dependiendo de la dimensión del lista.
También podemos introducir valores por teclado pero, en esta ocasión, con las listas se necesita de una estructura repetitiva o la repetición del mismo código muchas veces, lo que haría muy sucio nuestro código o mejor dicho, más largo de lo necesario, recordad la importancia de tener un código limpio, simplificado y lo más legible posible para facilitar mucho nuestro trabajo.
1 2 3 4 5 6 7 8 9 10 11 12 |
# declaramos una lista vacia lista=[] # creamos un bucle para escribir cada elemento del lista for x in range(5): valor=int(input("Ingrese un valor entero: ")) lista.append(valor) # una vez rellenado el lista, lo imprimimos print(lista) # y aprendemos una cosa nueva, como obtener la longitud del lista print(len(lista)) |
Otra opción sería obtener por ejemplo el número mayor de un lista.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# declaramos una lista vacia lista=[] # creamos un bucle para escribir cada elemento del lista for x in range(5): valor=int(input("Ingrese un valor entero: ")) lista.append(valor) # creamos una variable en la que guardamos el primer elemento mayor=lista[0] #utilizamos un bucle para recorrer el lista for x in range(1,5): # comprobamos si es mayor al almacenado if lista[x]>mayor: mayor=lista[x] #imprimimos la lista completa print(lista) # imprimimos el numero mayor print(mayor) |
Como vemos en el ejemplo, primero creamos la lista y la rellenamos, posteriormente comprobamos cual número es mayor dentro del lista e imprimimos la lista completa y el valor mayor obtenido.
Y, ahora qué más puedo hacer, podemos crear listas paralelas. Se puede decir que dos listas son paralelas cuando hay una relación entre los componentes (mismo subíndice) entre ambas.
Por ejemplo el siguiente problema.
Realizar un programa que permita cargar los nombres de 5 alumnos y sus notas respectivamente. Después, imprimir los nombres y las notas de cada alumno.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#Declaramos las listas alumnos=[] notas=[] # Rellenamos los datos for x in range(5): nombre=input("Ingrese el nombre del alumno: ") nota=int(input("Ingrese la nota del alumno: ")) alumnos.append(nombre) notas.append(nota) # imprimimos los datos for x in range(5): print(alumnos[x]+" "+str(notas[x])) |
En el ejemplo, creamos las dos listas vacías, las rellenamos simultáneamente e imprimimos los resultados en paralelo.
Para las listas tenemos además ciertas funciones para eliminar o añadir un elemento, ordenar, copiar, etc. A continuación exponemos algunas de ellas, como siempre podéis encontrarlas en la documentación de python.
- append(x) -> ya la utilizamos anteriormente para añadir un nuevo elemento
- insert(pos, x) -> inserta un elemento en la posición del lista especificada
- remove(x) -> elimina el primer elemento del lista cuyo valor es x
- pop(x) -> devuelve el elemento especificado, sino se especifica ninguno, devuelve el último elemento y lo elimina del lista.
- clear() -> elimina todos los elementos del lista
- count(x) -> cuenta el número de elementos del lista las veces indicadas por parámetro
- sort() -> ordena los elementos del lista
Problemas propuestos
Ejercicio 1
Realizar un programa que contenga una lista con 10 valores enteros. Informar de cuántos de ellos son superiores a 100.
Ejercicio 2
Una empresa divide el trabajo en dos turnos (mañana y tarde) en las que trabajan 6 empleados (3/turno). Agrupar los sueldos de los empleados en dos listas y mostrar después las listas por consola.
Ejercicio 3
Realizar un programa que permita crear una lista y almacenar los nombres de n países. Ordenar alfabéticamente la lista e imprimirla.
Ejercicio 4
Realizar un programa que permita cargar una lista de n elementos enteros. Ordenarla de mayor a menor e imprimir los resultados obtenidos. Informar también del número mayor y del número menor.
Ejercicio 5
Realizar un programa que permita cargar n países y la cantidad de habitantes que residen en cada uno. Imprimir cada país con su número de habitantes correspondiente.
Ejercicio 6
Realizar un programa que cree una lista de 50 elementos. El primer elemento es una lista con un entero, el segundo es una lista con dos enteros, etc. La lista debería tener la siguiente estructura
[[1], [1, 2], [1, 2, 3], …]
Ejercicio 7
Crear una lista por asignación con la cantidad de elementos y niveles de lista que desee. Después imprimir el resultado de la lista principal.
Además tenéis la lista completa de ejercicios en nuestro repositorio en github.
Con esto acabamos el quinto capítulo de nuestro curso de python 3.5. Si tienen cualquier duda relacionada con el contenido explicada en este capítulo, pueden exponerla en sus comentarios y le ayudaremos a resolverla lo antes posible. Nos vemos en el siguiente capítulo con la programación estructurada utilizando funciones.
<- Anterior | Volver al índice | Siguiente -> |