Listas en Python. Como la lista de la compra, pero con mas opciones.
Hasta el momento has tratado con tipos de datos mas o menos complejos. Sin embargo, son tipos de datos con los que en alguna ocasión te has enfrentado. El tipo de datos sobre el que te voy a hablar en esta Pyldora, es un tipo de datos con el que te enfrentas todos los días y a todas horas, para casi cualquier cosa que te puedas imaginar. Las listas. Esta Pyldora se centra y trata de forma monotemática sobre las listas en Python. Y es que, como te decía, todos los días tratas con listas, decenas de listas, la lista de la compra, la lista de tareas, la lista de pedidos, etc…
No creas que esas listas difieren de las listas en Python, ni mucho menos. Las listas en Python, y tus listas con las que tratas habitualmente se comportan de formas similares. Y si no te lo crees, simplemente acompañame a esta Pyldora, y verás lo sencillo que es trabajar con listas en Python.
Listas en Python. Como la lista de la compra, pero con mas opciones.
La lista de la compra.
Digamos que tu eres de los que en la puerta de la nevera tienes una hoja donde a lo largo de la semana vas anotando todos los productos que se van acabando, con el objeto de reponerlos el fin de semana, que es cuando realizas la compra. Así, el lunes, pones una nueva hoja en la nevera para ir rellenándola a lo largo de la semana. Cada vez que te acuerdas añades un elemento nuevo. De la misma manera, si compras algún producto de la lista, lo tachas.
Exactamente de la misma forma se comportan las listas en Python. Así para crear una lista vacía, lo puedes hacer de la siguiente forma,
mi_lista = []
Si quieres crear tu lista con datos, lo puedes hacer de la misma forma que en el ejemplo anterior, solo que añadiendo la información que necesites. Por ejemplo,
mi_lista = [1, "dos", 3.0, True]
Si te das cuenta, al igual que sucede con la lista de la compra, mi lista no la he llenado de frutas únicamente, si no que he puedo diferentes tipos de productos, o lo que es lo mismo en este caso, diferentes tipos de datos. He añadido, un entero, una cadena de texto, un número real y un booleano. Todo para simplemente demostrarte que la lista puede contener diferentes tipos de datos.
¿Como acceder a los elementos de la lista?
Para acceder a los elementos de tu lista en Python, lo puedes hacer fácilmente utilizando su posición, y teniendo en cuenta, que el primer elemento de la lista es el cero, el segundo el uno, y así sucesivamente. Por ejemplo,
elemento_1 = mi_lista[0]
elemento_2 = mi_lista[1]
Lo interesante es que puedes acceder a los elementos pero accediendo por el final de la lista. Así, el último elemento de la lista sería el -1
. Es decir, siguiendo con el ejemplo anterior,
ultimo = mi_lista[-1]
Como hemos visto en la Pyldora de texto, es posible, definir un variable de texto, utilizando f
, tal y como te muestro en el siguiente ejemplo,
var1 = f"El último elemento es {mi_lista[-1]}"
De la misma manera, también puedes obtener parte de una lista, utilizando la notación [<indice-inicio>:<indice-fin>]
. Así, por ejemplo, si lo que quieres es sacar los dos primeros elementos tienes que hacerlo tal y como te muestro en el siguiente ejemplo.
>>> lista = [1, 2, 3, 4]
>>>print(lista[0:2])
[1, 2]
Tienes que tener en cuenta que el último elemento que indiques no estará incluido, y de nuevo, recordarte que el primer elemento de la lista es el indice 0
.
Modificando la lista
Una de las características mas interesantes de las listas es que son dinámicas. Exactamente igual que sucede con la lista de la compra, que la inicias con uno o dos productos, y conforme van pasando los días van alargándose. También sucede que conforme pasan los días vas quitando productos de la lista. Incluso es posible que en ocasiones cambies algún elemento de la lista por otro elemento.
Añadir elementos a la lista
Así, por ejemplo, para añadir un elemento a la lista lo puedes hacer de varias formas,
mi_lista.append(item)
en este caso el elemento se añade al final de la lista.mi_ista.insert(0, item)
con este ejemplo, se añade al principio de la lista, pero puedes indicar cualquier posición.
Otro caso, es utilizando la operación sumar. Pero en este caso, no estás modificando una lista, sino creando una nueva. Así, por ejemplo, para los mismos supuestos que hemos visto en estos ejemplos anteriores,
[1, 2, 3, 4] + [5]
[1] + [2, 3, 4, 5]
Eliminar elementos de la lista
Igual que en el caso de añadir elementos a la lista, para eliminar también tenmos diferentes opciones.
del lista[1]
elimina el elemento de la posición 1. Recuerda que este es el segundo de los elementos, porque en las listas se empieza por el elemento 0.lista.pop()
En este caso se eleimina el último elemento de la lista, pero este elemento te lo devuelve como resultado de la operación. Por ejemplo,
>>> lista = ["a", "b", "c"]
>>> item = lista.pop()
>>> print(lista)
["a", "b"]
>>> print(item)
c
También es posible eliminar un elemento concreto de la lista utilizand pop
, para ello, es necesario indicar la posición del mismo.
>>> lista = ["a", "b", "c"]
>>> item = lista.pop(1)
>>> print(lista)
["a", "c"]
>>> print (item)
b
Además puedes eliminar un elemento, pero no por su posición como has hecho hasta ahora, sino por su valor. Así, siguiendo con el ejemplo anterior,
>>> lista = ["a", "b", "c"]
>>> item = lista.remove("a")
>>> print(lista)
["b", "c"]
>>> print(item)
a
Aquí tienes que tener en cuenta que solo borrará un elemento de la lista. Es decir, que si tienes varios elementos con el mismo valor que quieres borrar, solo se eliminará el primero de ellos. Para eliminar mas elementos, tendrás que recurrir a otros procesos.
Modificar elementos de la lista
Es posible modificar elementos de la lista. Para esto simplemente tienes que hacer referencia al elemento de la lista e asignar el nuevo valor. Por ejemplo,
>>> lista = ["a", "b", "c"]
>>> lista[2] = "d"
>>> print(lista)
["a", "b", "d"]
¿Como organizar una lista?
Normalmente las listas solemos ordenarlas. Si quieres modificar la lista, puedes utilizar el método sort
, y en el caso de que lo quieras hacer en orden inverso la forma sería, utilizando sort(reverse=True)
. Por ejemplo,
>>> lista = [ "b", "a", "c"]
>>> print(lista.sort())
["a", "b", "c"]
>>> print(lista.sort(reverse=True))
["c", "b", "a"]
Si no quieres modificar la lista puedes utilizar las funciones sorted
y reversed
. Estas dos funciones no modifican la lista original, si no que crean una nueva lista ordenado de forma directa o inversa respectivamente.
En cualquiera de los casos de los que hemos visto hasta el momento, tienes que tener en cuenta, cuando intervienen mayúsculas y minúsculas, la ordenación se hace algo mas compleja, y es probable que necesites otras herramientas para conseguir una ordenación efectiva. Pero, no te preocupes, porque esto seguro que lo abordaremos en alguna que otra Pyldora.
Número de elementos y posición
Por último, y para concluir con esta Pyldora, indicar que, para conocer el número de elementos de una lista puedes utilizar la función len
. Por ejemplo,
>>> lista = [1, 2, 3]
>>> print(len(lista))
3
Y para conocer la posición de un elemento en la lista, utiliza el método index
. Por ejemplo,
>>> lista = ["a", "b", "c"]
>>> print(lista.index("a"))
0
El vídeo
En el siguiente vídeo te muestro como puedes utilizar listas en Python. Como realizar todas las operaciones que te he ido mostrando a lo largo de esta Pyldora Pythonica.
Conclusión
Las listas son un tipo de dato algo mas complejo de lo que hemos visto hasta el momento en otras Pyldoras. Sin embargo, ya te has podido dar cuenta de las posibilidades de las listas, y de todo lo que puedes hacer con ellas. Son una herramienta y pieza fundamental a la hora de programar y tratar con todo tipo de problemas y situaciones.
La entrada Listas en Python. Como la lista de la compra, pero con mas opciones. aparece primero en Atareao.