Colecciones de Datos - Curso de Python - Hektor Profe
Colecciones de Datos - Curso de Python - Hektor Profe
Colecciones de Datos - Curso de Python - Hektor Profe
Colecciones de datos
Presentación
Python integra un montón de colecciones para manejar datos. Ya conocemos
las listas pero hay otros tipos que sirven para cubrir otras necesidades...
Tuplas
Son unas colecciones muy parecidas a las listas con la peculiaridad de que son
inmutables:
Código Resultado
tupla = (100,"Hola",[1,2,3],-50)
tupla
https://www.hektorprofe.net/python/colecciones-de-datos/#tuplas 1/17
2/10/2018 Colecciones de datos | Curso de Python | Hektor Profe
Indexación y slicing
Código Resultado
print(tupla)
print(tupla[0])
print(tupla[-1])
print(tupla[2:])
print(tupla[2][-1])
Inmutabilidad
Código Resultado
tupla[0] = 50
Función len(): Igual que si fuera una lista podemos utilizarla para saber la
longitud de una tupla:
Código Resultado
len(tupla)
Código Resultado
len(tupla[2])
Métodos integrados
https://www.hektorprofe.net/python/colecciones-de-datos/#tuplas 2/17
2/10/2018 Colecciones de datos | Curso de Python | Hektor Profe
Código Resultado
tupla.index(100)
Código Resultado
tupla.index('Hola')
Da error si no se encuentra:
Código Resultado
tupla.index('Otro')
count(): Sirve para contar cuantas veces aparece un elemento en una tupla:
Código Resultado
tupla.count(100)
Código Resultado
tupla.count('Algo')
Código Resultado
tupla = (100,100,100,50,10)
tupla.count(100)
append() ?: Al ser inmutables, las tuplas no disponen de métodos para modi car
su contenido:
https://www.hektorprofe.net/python/colecciones-de-datos/#tuplas 3/17
2/10/2018 Colecciones de datos | Curso de Python | Hektor Profe
Código Resultado
tupla.append(10)
Conjuntos
Son colecciones desordenadas de elementos únicos utilizados para hacer
pruebas de pertenencia a grupos y eliminación de elementos duplicados.
Para de nir un conjunto vacío hay que llamar a su clase set (conjunto en inglés):
Código Resultado
conjunto = set()
conjunto
Código Resultado
conjunto = {1,2,3}
conjunto
Código Resultado
conjunto.add(4)
conjunto
Código Resultado
https://www.hektorprofe.net/python/colecciones-de-datos/#tuplas 4/17
2/10/2018 Colecciones de datos | Curso de Python | Hektor Profe
conjunto.add(0)
conjunto
Colecciones desordenadas
Código Resultado
conjunto.add('H')
conjunto.add('A')
conjunto.add('Z')
conjunto
Pertenencia a grupos
Código
grupo = {'Hector','Juan','Mario'}
Código Resultado
'Hector' in grupo
Código Resultado
https://www.hektorprofe.net/python/colecciones-de-datos/#tuplas 5/17
2/10/2018 Colecciones de datos | Curso de Python | Hektor Profe
Elementos únicos
Los conjuntos no pueden tener el mismo elemento más de una vez, se borran los
duplicados automáticamente:
Código Resultado
test = {'Hector','Hector','Hector'}
test
Es muy útil transformar listas a conjuntos para borrar los elementos duplicados
automáticamente y viceversa:
Código Resultado
lista = [1,2,3,3,2,1]
print(lista)
conjunto = set(lista)
lista = list(conjunto)
print(lista)
Código Resultado
lista = [1,2,3,3,2,1]
print(lista)
https://www.hektorprofe.net/python/colecciones-de-datos/#tuplas 6/17
2/10/2018 Colecciones de datos | Curso de Python | Hektor Profe
lista = list(set(lista))
print(lista)
Hacer esta transformación sirve para crear un conjunto con todos los caracteres
de la cadena, pero sin duplicados:
Código Resultado
Diccionarios
Son junto a las listas las colecciones más utilizadas y se basan en una
estructura mapeada donde cada elemento de la colección se encuentra
identi cado con una clave única, por lo que no puede haber dos claves iguales.
En otros lenguajes se conocen como arreglos asociativos.
Los diccionarios se de nen igual que los conjuntos, utilizando llaves, pero
también se pueden crear vacíos con ellas:
Código Resultado
vacio = {}
vacio
Código Resultado
type(vacio)
https://www.hektorprofe.net/python/colecciones-de-datos/#tuplas 7/17
2/10/2018 Colecciones de datos | Curso de Python | Hektor Profe
De nición
Código Resultado
colores = {'amarillo':'yellow','azul':'blue'}
colores
Código Resultado
colores['amarillo']
Mutabilidad
Los diccionarios son mutables, por lo que se les puede añadir elementos sobre
la marcha a través de las claves:
Código Resultado
colores['verde'] = 'green'
colores
Código Resultado
colores['amarillo'] = 'white'
colores
https://www.hektorprofe.net/python/colecciones-de-datos/#tuplas 8/17
2/10/2018 Colecciones de datos | Curso de Python | Hektor Profe
Código Resultado
del(colores['amarillo'])
colores
Por cierto, las claves también pueden ser números, pero son un poco confusas:
Código Resultado
numeros = {10:'diez',20:'veinte'}
numeros[10]
Una utilidad de los diccionarios es que podemos trabajar directamente con sus
registros como si fueran variables:
Código Resultado
edades = {'Hector':27,'Juan':45,'Maria':34}
edades['Hector']+=1
edades
Código Resultado
edades['Juan'] + edades['Maria']
Lectura secuencial
Es posible utilizar iteraciones for para recorrer los elementos del diccionario:
Código Resultado
https://www.hektorprofe.net/python/colecciones-de-datos/#tuplas 9/17
2/10/2018 Colecciones de datos | Curso de Python | Hektor Profe
edades = {'Hector':27,'Juan':45,'Maria':34}
Código Resultado
Código Resultado
Código Resultado
Listas de diccionarios
https://www.hektorprofe.net/python/colecciones-de-datos/#tuplas 10/17
2/10/2018 Colecciones de datos | Curso de Python | Hektor Profe
Código Resultado
personajes = []
gandalf = {'Nombre':'Gandalf','Clase':'Mago','Raza':'Humano'}
legolas = {'Nombre':'Legolas','Clase':'Arquero','Raza':'Elfo'}
gimli = {'Nombre':'Gimli','Clase':'Guerrero','Raza':'Enano'}
personajes.append(gandalf)
personajes.append(legolas)
personajes.append(gimli)
print(personajes)
Código Resultado
Curiosidades
Un alumno me dijo que Gandalf no es humano, disculpadme por tal ofensa 🙇🙇🙇
Pilas
Son colecciones de elementos ordenados que únicamente permiten dos
acciones:
https://www.hektorprofe.net/python/colecciones-de-datos/#tuplas 11/17
2/10/2018 Colecciones de datos | Curso de Python | Hektor Profe
Las podemos crear como listas normales y añadir elementos al nal con el
append():
Código Resultado
pila = [3,4,5]
pila.append(6)
pila.append(7)
print(pila)
Código Resultado
print(pila.pop())
print(pila)
Código Resultado
numero = pila.pop()
print(numero)
Código Resultado
https://www.hektorprofe.net/python/colecciones-de-datos/#tuplas 12/17
2/10/2018 Colecciones de datos | Curso de Python | Hektor Profe
pila.pop()
pila.pop()
pila.pop()
pila.pop()
Colas
Son colecciones de elementos ordenados que únicamente permiten dos
acciones:
Código Resultado
Código Resultado
cola = deque(['Hector','Juan','Miguel'])
print(cola)
Código Resultado
https://www.hektorprofe.net/python/colecciones-de-datos/#tuplas 13/17
2/10/2018 Colecciones de datos | Curso de Python | Hektor Profe
cola.append('Maria')
cola.append('Arnaldo')
print(cola)
Código Resultado
print(cola.popleft())
print(cola)
Código Resultado
persona = cola.popleft()
print(persona)
print(cola)
Ejercicios optativos
1) Realiza un programa que siga las siguientes instrucciones:
Crea un conjunto llamado usuarios con los usuarios Marta, David, Elvira,
Juan y Marcos
https://www.hektorprofe.net/python/colecciones-de-datos/#tuplas 14/17
2/10/2018 Colecciones de datos | Curso de Python | Hektor Profe
Muestra todos los usuarios por pantalla de forma dinámica, además debes
indicar cada usuario es administrador o no.
Sugerencia
Los conjuntos se pueden recorrer dinámicamente utilizando el bucle for de forma similar a una
lista.
También cuentan con un método llamado .discard(elemento) que sirve para borrar o descartar
un elemento.
https://www.hektorprofe.net/python/colecciones-de-datos/#tuplas 15/17
2/10/2018 Colecciones de datos | Curso de Python | Hektor Profe
¿Eres capaz de crear una estructura del tipo cola con todas las tareas ordenadas
pero sin los números de orden?
Sugerencia
Para ordenar automáticamente una lista es posible utilizar el método .sort(), deberias probarlo.
tareas = [
[6, 'Distribución'],
[2, 'Diseño'],
[1, 'Concepción'],
[7, 'Mantenimiento'],
[4, 'Producción'],
[3, 'Planificación'],
[5, 'Pruebas']
]
print("==Tareas desordenadas==")
for tarea in tareas:
print(tarea[0], tarea[1])
https://www.hektorprofe.net/python/colecciones-de-datos/#tuplas 16/17
2/10/2018 Colecciones de datos | Curso de Python | Hektor Profe
https://www.hektorprofe.net/python/colecciones-de-datos/#tuplas 17/17