Tuplas
Diccionarios
Python: tuplas y diccionarios
Amparo Varona Fernández
Departamento de Electricidad y Electrónica
Facultad de Ciencia y Tecnologı́a, UPV/EHU
[Link]@[Link]
septiembre-diciembre
1/11
AVF Python: tuplas y diccionarios
Tuplas
Diccionarios
Secuencias en Python
En Python existen tres tipos primitivos de secuencias
Tupla Es una colección fija de elementos. Esto significa que no es
posible añadir, modificar, o eliminar elementos una vez creada.
T= (1, 2, ”tres”, 4, ”nueve”)
Lista Es una colección dinámica de elementos, es decir, sı́ es posible
añadir y eliminar elementos, ası́ como también modificarlos.
L= [1, 2, ”tres”, 4, ”nueve”]
Diccionario Es una asociación de claves a valores, donde cada clave tiene
un único valor asociado.
D= {”lunes”: ”fı́sica”, ”martes”: ”álgebra”, ”miércoles”:
”quı́mica”, ”jueves”: ”música”, ”viernes”: ”matemáticas”}
2/11
AVF Python: tuplas y diccionarios
Tuplas
Diccionarios
Tuplas
Se parecen mucho a las listas pero no se puede alterar
sus valores
>>> t = ’a ’ , ’b ’ , ’c ’ , ’d ’ , ’e ’
>>> t = ( ’a ’ , ’b ’ , ’c ’ , ’d ’ , ’e ’)
>>> t1 =( ’a ’)
>>> type ( t1 )
< type ’ str ’ >
>>> t1 =( ’a ’ ,)
>>> print ( t [0])
’a ’
>>> print ( t [1:3])
( ’b ’ , ’c ’)
>>> t [0]= " A " # ERROR
>>> t =( ’A ’ ,) + t [1:]
>>> print ( t )
( ’A ’ , ’b ’ , ’c ’ , ’d ’ , ’e ’)
3/11
AVF Python: tuplas y diccionarios
Tuplas
Diccionarios
Tuplas
# Asignaciones multiples : a la izquierda hay una tupla
de variables , a la derecha una tupla de
expresiones
a , b =b , a
# Una funcion solo puede devolver una valor pero ese
valor puede ser una tupla
def min_max ( t ) :
return min ( t ) , max ( t )
4/11
AVF Python: tuplas y diccionarios
Tuplas
Diccionarios
Diccionarios
Un diccionario es un mapeo o asociación entre un conjunto de claves y un
conjunto de valores.
Un diccionario puede contener como valores cualquier objeto, pero sólo puede
usar como claves ciertos tipos de objetos: int, float, str, tuple
5/11
AVF Python: tuplas y diccionarios
Tuplas
Diccionarios
◦ Un diccionario es como una lista, pero más general. Tanto las listas como
los diccionarios pueden almacenar objetos de cualquier tipo.
Diferencia principal:
◦ Los valores almacenados en una lista están ordenados implı́citamente por su
posición en la lista, por que los ı́ndices con que se accede a esos valores son
enteros consecutivos, lo cual introduce un ordenamiento intrı́nseco de los
valores en la lista.
◦ Los valores almacenados en un diccionario no están ordenados
implı́citamente con relación a ningún otro porque las claves del diccionario
no son únicamente números, pueden ser (casi) de cualquier tipo, por lo que
no hay un ordenamiento especifico de estos ı́ndices.
6/11
AVF Python: tuplas y diccionarios
Tuplas
Diccionarios
>>> d = { " x " : 1 , " y " : 2 , " z " : 3}
>>> len ( d )
3
>>>d [ k ]=4
>>> print ( d )
{ ’x ’ : 1 , ’y ’ : 2 , ’k ’ : 4 , ’z ’ : 3 }
>>> ’k ’ in d
True
>>> 1 in d
False
7/11
AVF Python: tuplas y diccionarios
Tuplas
Diccionarios
Operaciones de listas
Un diccionario soporta todas las operaciones definidas para una secuencia, pero
tiene algunas especiales:
◦ D[k] = x ; Asigna el valor x a la clave k
◦ del D[k] ; Elimina la clave k (y su valor asociado)
◦ [Link]() ; Elimina todas las claves (y sus valores asociados)
◦ [Link]() ; Devuelve una lista con todas las claves de D
◦ [Link]() ; Devuelve una lista con todas las valores de D
◦ [Link]() ; Devuelve una lista de tuplas con claves y valores
◦ [Link](k,v) ; Devuelve D[k] si k está en D y si no v
◦ [Link](k,v) ; Lo mismo, pero hace D[k] = v
8/11
AVF Python: tuplas y diccionarios
Tuplas
Diccionarios
diccionario ={ ’ house ’: ’ casa ’ , ’ red ’: ’ rojo ’ , ’ bed ’: ’ cama ’ ,
’ window ’: ’ ventana ’}
lista = diccionario . keys ()
print ( lista ) # [ ’ house ’, ’ window ’, ’ bed ’, ’ red ’]
lista = diccionario . values ()
print ( lista ) # [ ’ casa ’, ’ ventana ’, ’ cama ’, ’ rojo ’]
lista = diccionario . items ()
print ( lista ) # [( ’ house ’, ’ casa ’) , ( ’ window ’, ’
ventana ’) , ( ’ bed ’, ’ cama ’) , ( ’ red ’, ’ rojo ’) ]
9/11
AVF Python: tuplas y diccionarios
Tuplas
Diccionarios
Ejemplo: contar el número de apariciones de cada letra en una cadena
def histograma ( s ) :
d = dict ()
for c in s :
if c not in d :
d [ c ]=1
else :
d [ c ]+=1
return d
>>> h = histograma ( " brontosaurus " )
>>> print ( h )
{ ’a ’: 1 , ’b ’: 1 , ’o ’: 2 , ’n ’: 1 , ’s ’: 2 , ’r ’: 2 , ’u ’:
2 , ’t ’ :1}
def print_histograma ( h ) :
for c in h :
print (c , h [ c ])
10/11
AVF Python: tuplas y diccionarios
Tuplas
Diccionarios
Ejercicios
◦ Diseñar una función que calcule el histograma de palabras diferentes que
hay en un fichero de texto.
◦ Diseñar una función que tome como entrada un histograma de palabras y
un entero n, y devuelva la lista de palabras que aparecen exactamente n
veces.
◦ Diseñar una función que utilice un diccionario para representar el
histograma inverso de palabras de un fichero de texto: cada clave será un
entero n, al que le corresponde la lista de palabras que aparecen
exactamente n veces en el fichero.
◦ Cada lı́nea de un fichero de texto contiene tres primeras palabras con el
nombre y apellidos de un alumno, y las demás palabras el nombre de las
asignaturas de las que está matriculado “ Igor Torres Asensio Algebra
Quimica Computacion” “ Lander Gonzalez Ugarte Computacion Fisica”
Diseñar una función que guarde información sobre el número de alumnos
matriculados en cada asignatura.
11/11
AVF Python: tuplas y diccionarios