Uso de tipos estructurados en el lenguaje de programación Python: tuplas, listas y diccionarios. Con multitud de ejemplos y resultado de salida.

Tuplas en Python

Las tuplas son un tipo de datos estructurado de Python que se utiliza para agrupar variables del mismo tipo o tipos diferentes. Es un tipo de dato inmutable desde su creación (una vez creado, no puede modificarse).

Ejemplo de creación de tuplas de cadenas de texto en Python:

De números:

De cualquier tipo, incluidas otras tuplas en una tupla nueva:

Si intentamos modificar algún elemento de una tupla, por ejemplo con:

El compilador nos devolverá este error:

Indicando que el objeto colores no admite la asignación, no se pueden modificar sus valores.

Las tuplas en Python admiten métodos genéricos como str(), type() o len(). Por ejemplo, si ejecutamos un len() en la tupla «colores» definida anteriormente:

Devolverá: 5, dado que es el número de elementos que contiene la tupla colores.

El acceso a un elemento de la tupla se realizará indicando el índice entre corchetes. Las posiciones de las tuplas empiezan siempre por cero. Por ejemplo, para mostrar el elemento «Verde» de la tupla colores, usaremos el siguiente código Python:

Devolverá: Verde.

Si queremos obtener el elemento 1 de la tupla colores_numeros, ejecutaremos:

En este caso, devolverá: (23, 45, 12, -4), que son los valores de la tupla numeros contenida en el elemento 1 de la tupla colores_numeros.

Si queremos saber el número de veces que aparece un mismo elemento en una tupla podemos usar el método count(valor). Por ejemplo, para saber cuántas veces aparece el número 12 en la tupla numeros, ejecutaremos:

Nos devolverá: 3.

Si no aparece ninguna vez, devolverá 0.

En Python también se puede obtener la posición del elemento de una tupla por su valor, con el método index(valor). Por ejemplo, para obtener la posición del elemento «12» de la tupla numeros, ejecutaremos:

Si el elemento se repite, como es el caso del ejemplo anterior, devolverá la primera posición donde lo encuentre, en este caso devolverá: 2.

Hay que tener precaución con el método «index», dado que si el elemento no existe, devolverá un error. Por ejemplo, si ejecutamos:

Devolverá el error:

En el caso anterior, es recomendable siempre comprobar previamente si existe el elemento antes de usar «index», con «count». Por ejemplo:

El ejemplo anterior devolverá: No se ha encontrado el elemento 88 en la tupla «numeros».

En Python se pueden crear tuplas vacías, para asignarles elementos posteriormente. Por ejemplo:

Devolverá: (‘Verde’, ‘Rojo’).

También se pueden crear tuplas de un solo elemento, con esta nomenclatura: tupla = (valor, ). Por ejemplo:

Devolverá: La tupla (‘Color’,) tiene 1 elemento.

Se pueden empaquetar varias variables en una tupla de forma directa. Por ejemplo:

Devolverá: La tupla num_color tiene los valores: (43, -4, ‘Verde’, ‘Marrón’).

Se puede hacer a la inversa, desempaquetando varias variables en una tupla de forma directa:

Devolverá: La tupla num_color se desempaquetó en las variables v1 -> 43, v2 -> -4, v3 -> Verde y v4 -> Marrón.

En el caso del desempaquetado hay que tener precaución, pues hay que añadir el número de variables exacto correspondiente al número de elementos de la tupla, de lo contrario, se producirá un error, o bien por falta de variables:

O bien por exceso de variables:

Listas en Python

Las listas son un tipo de dato estructurado en Python que sirven para agrupar variables del mismo tipo o tipos diferentes. Son similares a las tuplas, con la diferencia de que su contenido se puede modificar. Se definen, en lugar de con paréntesis (como el caso de las tuplas), con corchetes.

El funcionamiento general de las listas es similar al de las tuplas explicado anteriormente, admitiendo los métodos len(), count(valor), str(), type(), index(valor), etc. Por ejemplo:

Devolverá:

El elemento «Rojo» aparece en la posición 4 de la lista
La lista tiene 5 elementos

Las listas son accesibles por subgrupos, teniendo en cuenta que los índices indican:

[Primera posición que se selecciona:primera posición que no se selecciona]

Por ejemplo:

Devolverá: [‘Rojo’, ‘Negro’], dado que hemos indicado que se seleccione desde la posición 0 a la 2 (desde el «Rojo» al «Verde», pero sin incluir este último.

Otro ejemplo:

Devolverá: [‘Verde’, ‘Azul’], dado que hemos indicado que empiece por el elemento 2 (el «Verde») y acabe en el 4 (el «Naranja»), sin incluirlo.

Si no queremos mostrar el último elemento de una lista, usaremos [:-1]

Devolverá: [‘Rojo’, ‘Negro’, ‘Verde’, ‘Azul’].

Las listas admiten asignación directa, para modificar sus elementos. Por ejemplo:

Devolverá:

El elemento 2 tiene el valor Verde
Ahora, el elemento 2 tiene el valor Amarillo

Podremos añadir un elemento al final de la lista, con append(valor):

Devolverá:

La lista tiene 5 elementos
Ahora, la lista tiene 6 elementos

Para añadir un elemento en una posición concreta de la lista, usaremos insert(posicion, valor). Por ejemplo:

Devolverá:

[‘Rojo’, ‘Negro’, ‘Verde’, ‘Azul’, ‘Naranja’]
[‘Rojo’, ‘Negro’, ‘Verde’, ‘Violeta’, ‘Azul’, ‘Naranja’]

Podremos extender una lista, añadiéndole varios elementos, con extend. Por ejemplo:

Devolviendo:

[‘Rojo’, ‘Negro’, ‘Verde’, ‘Azul’, ‘Naranja’]
[‘Rojo’, ‘Negro’, ‘Verde’, ‘Azul’, ‘Naranja’, ‘Violeta’, ‘Rosa’, ‘Púrpura’, ‘Blanco’]

Se pueden eliminar elementos por su valor en una lista, usando remove(valor). Por ejemplo:

Devolverá:

[‘Rojo’, ‘Negro’, ‘Verde’, ‘Azul’, ‘Naranja’]
[‘Rojo’, ‘Negro’, ‘Azul’, ‘Naranja’]

También se puede eliminar un elemento por su índice, con pop(índice). Por ejemplo:

Devolverá:

[‘Rojo’, ‘Negro’, ‘Verde’, ‘Azul’, ‘Naranja’]
[‘Rojo’, ‘Verde’, ‘Azul’, ‘Naranja’]

Podremos evaluar si un elemento está en la lista, usando in. Por ejemplo:

Devolverá: El color ‘Naranja’ existe en la lista.

Para obtener la posición de un elemento en la lista usaremos index(valor). Por ejemplo:

Devolverá: El color ‘Naranja’ existe en la lista, en la posición 4.

En el caso del uso de index deberemos tener precaución porque si no existe el elemento se producirá un error:

Podremos invertir el orden de una lista, con reverse(). Por ejemplo:

Devolverá:

La lista antes de invertir el orden: [‘Rojo’, ‘Negro’, ‘Verde’, ‘Azul’, ‘Naranja’]
La lista antes tras invertir el orden: [‘Naranja’, ‘Azul’, ‘Verde’, ‘Negro’, ‘Rojo’]

Podremos ordenar la lista en orden alfabético de menor a mayor con sort(). Por ejemplo:

Devolverá:

La lista antes de ordenar: [‘Rojo’, ‘Negro’, ‘Verde’, ‘Azul’, ‘Naranja’]
La lista antes tras ordenar: [‘Azul’, ‘Naranja’, ‘Negro’, ‘Rojo’, ‘Verde’]

Para ordenar alfabéticamente de mayor a menor usaremos sort(reverse = True). Por ejemplo:

Devolverá:

La lista antes de ordenar: [‘Rojo’, ‘Negro’, ‘Verde’, ‘Azul’, ‘Naranja’]
La lista antes tras ordenar: [‘Verde’, ‘Rojo’, ‘Negro’, ‘Naranja’, ‘Azul’]

El método sort también ordena listas de números. Por ejemplo:

Devolverá:

[2, -1, 45, 0, -23, 132]
[-23, -1, 0, 2, 45, 132]

Al igual que reverse, también invertirá el orden de una lista de números:

Devolverá:

[2, -1, 45, 0, -23, 132]
[132, -23, 0, 45, -1, 2]

Diccionarios en Python

Los diccionarios son un tipo de datos estructurado que permite agrupar variables. El contenido de los diccionarios son parejas clave:valor. En el caso de los diccionarios no existen índices de posición y los datos no guardan un orden concreto. Los diccionarios en Python se definen usando llaves {}.

A los valores de un diccionario se puede acceder directamente por el nombre de su clave. Por ejemplo:

Devolverá:

Pájaro en inglés es Bird
Murciélago en inglés es Bat

Teniendo en cuenta que si la clave no existe devolverá un error (y distingue mayúsculas de minúsculas). Por ejemplo:

En el caso anterior, la clave «murciélago» no existe y devuelve un error:

Para evitar este error, podemos usar el método get(), que si la clave no existe, devolverá «None» en lugar de error. Por ejemplo:

Devolverá:

‘murciélago’ no existe en el diccionario

Otro ejemplo:

En este caso, devolverá:

Murciélago en inglés es Bat

Podremos recorrer los datos del diccionario mediante un bucle for. Por ejemplo:

Devolverá:

Pájaro en inglés es Bird
León en inglés es Lion
Murciélago en inglés es Bat
Araña en inglés es Spider
Perro en inglés es Dog
Gato en inglés es Cat

Podremos recorrer los elementos y sus valores directamente en un bucle for. Por ejemplo:

Devolverá lo mismo que en el caso anterior.

Podremos acceder a todas las claves con keys(). Por ejemplo:

Devolverá:

dict_keys([‘Pájaro’, ‘León’, ‘Murciélago’, ‘Araña’, ‘Perro’, ‘Gato’])

O también acceder a sus valores con values(). Por ejemplo:

dict_values([‘Bird’, ‘Lion’, ‘Bat’, ‘Spider’, ‘Dog’, ‘Cat’])

Y acceso a las claves y valores con items(). Por ejemplo:

Devolverá el par clave,valor:

dict_items([(‘Pájaro’, ‘Bird’), (‘León’, ‘Lion’), (‘Murciélago’, ‘Bat’), (‘Araña’, ‘Spider’), (‘Perro’, ‘Dog’), (‘Gato’, ‘Cat’)])

Para insertar un nuevo elemento en un diccionario, podemos usar una asignación directa (al igual que para modificar un elemento existente). Por ejemplo:

Devolverá:

Claves del diccionario animales antes de inserción: dict_keys([‘Pájaro’, ‘León’, ‘Murciélago’, ‘Araña’, ‘Perro’, ‘Gato’])
Claves del diccionario animales después de inserción: dict_keys([‘Pájaro’, ‘León’, ‘Murciélago’, ‘Araña’, ‘Perro’, ‘Gato’, ‘Gusano’])

De la misma forma, si la clave ya existe, se modificará su valor. Por ejemplo:

Devolverá:

Valores del diccionario animales antes de modificación: dict_values([‘Bird’, ‘Lion’, ‘Bat’, ‘Spider’, ‘Dog’, ‘Cat’, ‘Worm’])
Valores del diccionario animales después de modificación: dict_values([‘Bird’, ‘Lion’, ‘Bat’, ‘Spider’, ‘Dog’, ‘Cat’, ‘Caterpillar’])

Podremos eliminar una clave del diccionario usando pop(clave). Por ejemplo:

Devolverá:

Claves del diccionario animales antes de eliminación: dict_keys([‘Pájaro’, ‘León’, ‘Murciélago’, ‘Araña’, ‘Perro’, ‘Gato’, ‘Gusano’])
Claves del diccionario animales después de eliminación: dict_keys([‘Pájaro’, ‘León’, ‘Murciélago’, ‘Araña’, ‘Gato’])

Hay que tener precaución con el método pop(), dado que si el elemento a eliminar no existe, devolverá un error:

Se puede vaciar el diccionario completo con el método clear(). Por ejemplo:

Claves del diccionario animales antes de vaciar contenido: dict_keys([‘Pájaro’, ‘León’, ‘Murciélago’, ‘Araña’, ‘Perro’, ‘Gato’, ‘Gusano’])
Claves del diccionario animales después de vaciar contenido: dict_keys([])

En los ejemplos de los diccionarios hemos usado valores de cadena de texto, pero también admiten, de la misma forma, números. Por ejemplo:

Devolverá:

dict_items([(‘Murcia’, 30), (‘Albacete’, 2), (‘Burgos’, 9), (‘Granada’, 18), (‘Madrid’, 28)])

O al revés, definiendo las claves como número y los valores como cadena de texto:

Devolverá:

dict_items([(30, ‘Murcia’), (2, ‘Albacete’), (9, ‘Burgos’), (18, ‘Granada’), (28, ‘Madrid’)])