tutz

Listas en Python

Las lista son la secuencia más general proporcionada por Python. Las listas son colecciones ordenadas posicionalmente de objetos tipados arbitrariamente y no tienen un tamaño fijo.

También son mutables: a diferencia de las cadenas, las listas se pueden modificar mediante la asignación o por llamadas a métodos de listas. Por consiguiente, proporcionan una herramienta muy flexible para representar colecciones arbitrarias como listas de estudiantes en un salón, empleados en una empresa, correos electrónicos, artículos en un blog, etc.

Forma de escribir una lista

Para representar una lista en Python, debemos hacer uso de los corchetes []. Ejemplos a continuación.

>>> animales = ['perro', 'gato', 'paloma']
>>> tipos = [1, 'a', 5.5]
>>> anidados = [[0,1], [2,3], [4,5]]

Si te das cuenta, las listas pueden contener cualquier tipo dentro de sus elementos y hasta pueden contener otras listas.

Indices

Los indices en las listas comienzan en 0 y se debe contar de izquierda a derecha. Es así que el primer elemento de una lista tendría el indice 0, el segundo el indice 1, y así sucesivamente.

>>> lenguajes = ['python', 'ruby', 'php', 'javascript']
>>> lenguajes[0]
'python'
>>> lenguajes[1]
'ruby'

Ademas las listas al ser secuencias permiten el indice reverso, lo que significa que podemos contar desde el final de la lista, comenzando por -1, el último elemento tendría el indice -1, el penúltimo -2, y así sucesivamente.

>>> lenguajes[-1]
'javascript'
>>> lenguajes[-2]
'php'

Tamaño de una lista

Para conocer el tamaño de una lista podemos hacer uso de la función len(). Esta función nos devuelve la cantidad de elementos que tiene la lista.

>>> len(lenguajes)
4

Lista vacía

Para crear una lista vacia solo debemos escribir corchetes sin nada dentro.

>>> L = []

Métodos de listas

Las listas cuentas con muchos métodos que podemos usar para agregar, quitar, ordenar, entre otros sus elementos y como las listar son mutables, puede que muchos de estos métodos modifiquen la lista.

Veamos ejemplos de los principales métodos de listas.

append()

Este método nos permite agregar elementos al final de nuestra lista.

>>> lenguajes = ['python', 'ruby', 'php', 'javascript']
>>> lenguajes.append('go')
>>> lenguajes
['python', 'ruby', 'php', 'javascript', 'go']

extend()

Extiende una lista agregando elementos desde un objeto iterable.

>>> lenguajes = ['python']
>>> lenguajes.extend(['ruby', 'php', 'go'])
>>> lenguajes
['python', 'ruby', 'php', 'go']

insert()

Toma dos argumentos, un indice y un objeto. El objeto se agregará antes del indice dado.

>>> lenguajes = ['python', 'ruby', 'php']
>>> lenguajes.insert(1, 'go')
>>> lenguajes
['python', 'go','ruby', 'php']

index()

Devuelve el indice del primer elemento encontrado con el valor que le pasemos como argumento.

>>> lenguajes = ['python', 'ruby', 'go']
>>> lenguajes.index('go')
2

También acepta un segundo argumento start=X, donde X es el indice desde donde vamos a empezar a buscar el valor que se le paso como argumento.

remove()

Elimina el primer elemento encontrado del valor pasado como argumento.

>>> alumnos = ['Carlos', 'Alex', 'Ana', 'Paola', 'Ana']
>>> alumnos.remove('Ana')
>>> alumnos
['Carlos', 'Alex', 'Paola', 'Ana']

pop()

Este método elimina el elemento que se ubica en el indice que le pasamos, si no le pasamos ningún argumento entonces elimina el último elemento. Nos devuelve el elemento que hemos eliminado.

>>> lenguajes.pop(1)
'ruby'
>>> lenguajes
['python', 'php', 'javascript', 'go']
>>> lenguajes.pop()
['python', 'php', 'javascript']

sort()

Este método ordena los elementos dentro de una lista.

>>> numeros = [4, 7, 1, 9]
>>> numeros.sort()
>>> numeros
[1, 4, 7, 9]

reverse()

Invierte los elementos de una lista.

>>> numeros.reverse()
>>> numeros
[9, 7, 4, 1]

clear()

Remueve todos los elementos de una lista.

>>> alumnos = ['Carlos', 'Alex', 'Ana', 'Paola', 'Ana']
>>> alumnos.clear()
>>> alumnos
[]

copy()

Retorna una copia superficial de la lista.

>>> alumnos = ['Carlos', 'Alex', 'Ana', 'Paola', 'Ana']
>>> alumnos.copy()
['Carlos', 'Alex', 'Ana', 'Paola', 'Ana']

count()

Devuelve cuantas veces se repite un elemento dentro del array.

>>> alumnos = ['Carlos', 'Alex', 'Ana', 'Paola', 'Ana']
>>> alumnos.count('Ana')
2

Operaciones con listas

Ya que las listas son secuencias, estas tienen muchas de las operaciones de las cadenas, como por ejemplo, las operaciones de + y *.

Concatenación

>>> [1, 2] + [3, 4]
[1, 2, 3, 4]

Repetición

>>> ['a'] * 4
['a', 'a', 'a', 'a']

Eliminación

Con la palabra clave del podemos eliminar uno o varios elementos de una lista. Por ejemplo.

>>> alumnos = ['Edwin', 'Karen']
>>> del alumnos['Edwin']
>>> alumnos
['Karen']

Límites

Aunque las listas nos permiten hacer muchas cosas, hay algunos cosas que no podemos realizar.

>>> vocales = ['a', 'e', 'i', 'o']
>>> vocales[10]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

Por ejemplo tenemos una lista de vocales de 4 elementos y si queremos acceder a su elemento con indice 10 nos va a tirar un error ya que el mayor indice al cual podemos acceder es 3.

Ahora supongamos que queremos agregar la ultima vocal y para eso vamos a agregar un indice 4 a la lista y asignarle la vocal 'u'.

>>> vocales[4] = 'u'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range

Como ven esto también nos tira un error, ya que no se le puede asignar un valor a un elemento que no esta definido. Para agregar tendríamos que hacer uso de los métodos que nos da Python como append() o extend().

Listas anidadas

Como vimos en unos de los primeros ejemplos, podemos anidar listas dentro de otras listas. Esto nos puede servir de mucho ya que podemos representar matrices o arreglos multidimensionales en Python.

>>> matriz = [[1,2,3],
              [4,5,6],
              [7,8,9]]

Por ejemplo aquí tenemos una matriz de 3x3. Para obtener sus elementos podemos hacer uso de los indices.

>>> matriz[0][2]
3

Las listas en Python nos permiten ordenar nuestros datos para poder trabajarlos dentro de nuestro programas de una manera fácil y ordenada. Encuentra ejemplos de los métodos de listas dentro de nuestra web.