logo cosasdedevs

Cómo usar listas, diccionarios, tuplas y sets en Python

Cómo usar listas, diccionarios, tuplas y sets en Python

My Profile
Feb 08, 2020

Una de las cosas que más interesante me pareció cuando empecé a aprender Python (vengo de PHP) fue ver que no existían los arrays como tal sino que había varios tipos de estructuras de datos distintos. Por eso esta vez, he decidido hacer un tutorial sobre como se usan las listas, diccionarios, tuplas y sets, ya que tienen un potencial enorme.

LISTAS

Una lista es una estructura de datos en la que puedes añadir elementos para su posterior uso. Como en otros lenguajes de programación, las listas permiten guardar cualquier tipo de dato, ya sea enteros, cadenas, objetos e incluso otras listas.

Para declarar una lista se puede hacer con list() o con []

my_list = list()
my_list = []

Ahora explicaré los métodos más utilizados.

Si quieres añadir un elemento a la última posición lo haríamos con el método append.

my_list.append('hello')

También podemos crear una lista con varios datos de esta forma:

my_list = ['hello', 'world', 'I']

En caso de que queramos añadir un elemento en una posición en concreto usaremos el método insert donde el primer parámetro será la posición y el segundo el dato a insertar.

my_list.insert(3, 'am')

Para acceder a los datos simplemente indicamos la posición.

my_list[1] # world

Si queremos eliminar un elemento que conozcamos su valor usaremos remove, en el caso de que esté repetido el valor pasado por parámetro, solo borraría el primer ítem que encontrase:

my_list.remove('am')

En el caso de que lo queramos hacer por clave usaremos su posición en la lista con el método pop, si no pasamos un parámetro, eliminará el valor guardado en la última posición:

my_list.pop(2) # Elimina el valor 'I'

Para vaciar la lista usaremos el método clear:

my_list.clear() 

Otra de las cosas interesantes que tienen las listas es que también podemos hacer operaciones como se ve en los siguientes ejemplos:

Para unir listas podemos usar el operador + como se ve en el siguiente ejemplo, esto nos devolverá una nueva lista con los elementos de las otras dos listas.

lista_1 = [1]
lista_2 = [2,3,4]
lista_3 = my_lista + my_lista2
lista_3 # [1,2,3,4]

Para repetir los elementos de una lista usaremos el operador * sobre la lista en la que queramos multiplicar sus valores.

lista = ['a']
lista_multiplicada = lista * 5
lista_multiplicada # ['a','a','a','a','a']

Si queremos invertir el orden de una lista lo haremos como en el siguiente ejemplo.

lista = [1,2,3,4,5]
lista_reversed = lista[::-1]
lista_reversed # [5,4,3,2,1]

En el caso de que queramos ordenar la lista utilizaremos el método sort.

lista_num = [2,1,5,4,3]
lista_num = lista_num.sort()
lista_num # [1,2,3,4,5]

DICCIONARIOS

Un diccionario es un mapa de valores, los cuales deben tener una llave. Los diccionarios se declaran con (llaves) {} o con la función dict().

# Ejemplo 1
my_dict = dict()
# Ejemplo 2
my_dict = {}
# Ejemplo 3
my_dict = {'status': True, 'msg': 'ok'}

Para acceder a un elemento lo haremos con la clave.

my_dict['status'] # True

Cuando iteramos en diccionarios podemos hacerlo a través de las llaves, valores o ítems.

# Iterar en llaves
for key in my_dict.keys():
    print(key)

# Iterar en valores
for value in my_dict.values():
    print(value)

# Iterar en ítems
for key, value in my_dict.items():
    print('llave: {}, valor: {}'.format(key, value))

TUPLAS

Son similares a las listas pero lo que las diferencia es que estas son inmutables, esto quiere decir que no puede modificarse de ninguna forma después de su creación.

Se definen de esta forma:

my_tuple = (1,2,3,4)

SETS

Los sets son muy similares a las listas, pero estas no permiten elementos repetidos.

Para declarar un set se hace de esta forma:

a = set([1, 2, 3])
b = set([3, 4, 5])

Cuando trabajamos con sets, podemos realizar las operaciones básicas de conjuntos, esto quiere decir que se puede calcular los valores de intercepción, diferencia, unión.

a.union(b) # set([1,2,3,4,5])
a.intersection(b) # set([3])
a.difference(b) # set([1,2])

BONUS

Para terminar os hablaré de los dictionary comprehensions y list comprehensions que nos permite generar listas y diccionarios de forma más sencilla al poder comprimir varias líneas de código en una sola línea.

Si por ejemplo queremos crear una lista que contenga los múltiplos de tres de un rango de números:

multiplos = []
for num in range(1, 11):
    multiplos.append(num*3)

Con list comprehensions lo podemos encapsular todo en una sola línea como os muestro a continuación:

multiplos = [num*3 for num in range(1, 11)]

El primer valor que aparece (num*3) es el que se guardará en la lista, luego se crea el for y por último, aunque en este caso no lo estamos usando, se podría añadir una condición. Como véis, hemos conseguido condensar tres líneas en una, lo que hará que nuestro código se vea más compacto y limpio.

Para el caso de dictionary comprehensions serían bastante similiar como vamos a ver en el siguiente ejemplo en el que queremos guardar los múltiplos de 4 además de una clave numérica.

multiplos = {}
for num in range(1, 11):
    multiplos[num] = (num*4)

Con dictionary comprehensions lo haríamos de esta forma:

multiplos = {num: num*4 for num in range(1, 11)}

La primera variable num sería la clave, el valor sería num*4 y luego ya tendríamos el bucle for.

Como veis Python nos ofrece varias herramientas para trabajar con nuestros datos, os animo a que las uséis y cualquier duda recordad que la podéis poner en los comentarios ;), también os recomiendo seguirme en Twitter para estar al tanto del nuevo material que voy subiendo 💪.

2825 vistas

Nos tomamos en serio tu privacidad

Utilizamos cookies propias y de terceros para mejorar la experiencia del usuario a través de su navegación. Si pulsas entendido aceptas su uso. Ver política de cookies.

🐍 Sígueme en Twitter

Si te gusta el contenido que subo y no quieres perderte nada, sígueme en Twitter y te avisaré cada vez que cree contenido nuevo 💪
Luego ¡Te sigo!