Listas¶
¿Que es una lista?¶
Supongamos que estamos preparando un programa para que nuestro colegio lleve el control de alumnos:
alumno1 = 'Ana'
alumno2 = 'Juan'
alumno3 = 'Andrés'
¿Cuantas variables necesita nuestro programa? Posiblemente, cientos. El programa sería inmanejable, y no podemos plantearnos el hecho de tener que modificarlo cada vez que hay un nuevo alumno.
La solución es crear una variable que almacene todos los datos:
>>> alumnos = [ 'Ana', 'Juan', 'Andrés']
>>> print(alumnos)
[ 'Ana', 'Juan', 'Andrés']
A estos paquetes de datos se les llama listas. Se escriben entre corchetes, con los elementos separados por comas. Si la lista es muy larga, podemos escribir:
alumnos = [ 'Ana',
'Juan',
'Andrés'
]
ya que el intérprete de Python considerará la sentencia como incompleta hasta encontrar el corchete de cierre.
Indexación¶
Como sucede con las cadenas de texto, al aplicar un índice, obtenemos un elemento:
>>> alumnos = [ 'Ana', 'Juan', 'Andrés']
>>> alumnos[1]
'Juan'
recordemos que los índices de una colección de n elementos van de cero a n-1
Tipos¶
Una lista admite elementos de diferente tipo:
>>> datos_alumno=["Ana", 17]
>>> print(f"Nombre: {datos_alumno[0]}. Edad: {datos_alumno[1]}.")
Nombre: Ana. Edad: 17.
El tipo de una lista es list. Los elementos serán del tipo que corresponda:
>>> type(datos_alumno)
<class 'list'>
>>> type(datos_alumno[0])
<class 'str'>
>>> type(datos_alumno[1])
<class 'int'>
Las listas son mutables¶
A diferencia de las cadenas de texto, que son secuencias inmutables, las listas son colecciones mutables:
>>> alumnos = [ 'Ana', 'Juan', 'Andrés']
>>> alumnos[0] = 'Anita'
>>> alumnos
['Anita', 'Juan', 'Andrés']
Añadir elementos¶
Para añadir un elemento al final de una lista, usar el método append
>>> alumnos = [ 'Ana', 'Juan', 'Andrés']
>>> alumnos.append('Teresa')
>>> alumnos
['Ana', 'Juan', 'Andrés', 'Teresa']
Siendo las listas mutables, el método append() no genera una nueva lista, sino
que modifica la lista asociada.
Para añadir un elemento en mitad de la lista, usar el método insert
>>> alumnos = [ 'Ana', 'Juan', 'Andrés']
>>> alumnos.insert(1,'Teresa')
>>> alumnos
['Ana', 'Teresa', 'Juan', 'Andrés']
El primer argumento de insert es la posición donde colocar el nuevo elemento.
Recuérdese que el primer elemento tiene índice cero. El resto de elementos
se desplazan y pasan a tener un índice mayor.
Tanto el método insert() como append() modifican la lista sin
crear una nueva.
Listas vacías¶
Una lista vacía es aquella que no tiene elementos. Se suelen usar cuando vamos a añadir los elementos posteriormente:
>>> alumnos = []
>>> alumnos.append('Ana')
>>> alumnos.append('Juan')
>>> alumnos.append('Andrés')
>>> alumnos
['Ana', 'Juan', 'Andrés']
Número de elementos¶
Al igual que sucede con las cadenas de texto, podemos averiguar el número
de elementos de la lista con ayuda de la función len():
>>> alumnos = [ 'Ana', 'Juan', 'Andrés']
>>> len(alumnos)
3