Sie sind auf Seite 1von 12

Secuencias: Tuplas y Diccionarios

Introduccin a la Computacin
Clase 14
Patricia Borensztejn

Tupla
La tupla es una secuencia heterognea de
elementos, accesible a travs de un ndice.
Las tuplas se diferencian de las listas porque
las tuplas no son objetos dinmicos, por lo
tanto son INMUTABLES, como las cadenas y
como los escalares.
Se declaran usando como separador una coma

Tuplas y Listas
Las tuplas se acceden mediante un ndice.
>>> t = ("a", "b", "mpilgrim", "z", "example")
>>> t ('a', 'b', 'mpilgrim', 'z', 'example')
>>> t[0] 'a'
>>> t[-1] 'example'
>>> t[1:3] ('b', 'mpilgrim')

Pero:
No se pueden modificar
No existen mtodos o funciones para trabajar con
ellas
Entonces para que sirven?

Diccionarios
Tambin llamados matrices asociativas,
relacionan una clave y un valor.
Por ejemplo:
d = {Nueve Reinas : Fabin Bielinsky,
Kill Bill: Tarantino,
Amlie: Jean-Pierre Jeunet}

El primer valor es la clave, y el segundo es el


valor.
Como clave podemos utilizar cualquier valor
inmutable: nmeros, cadenas, booleanos, tuplas
(para eso sirven!)

Diccionarios
La clave tiene que ser inmutable porque la
implementacin de esta estructura es
mediante una tabla de hashing. En estas
tablas los valores se almacenan en posiciones
calculadas a partir de una funcin sobre la
clave. Es por eso que, si esta cambiara, sera
imposible volver a localizar el valor asociado a
esa clave

Diccionarios
El acceso a los valores almacenados no se
realiza a travs de un ndice como en el caso
de las listas o las tuplas, sino por medio de su
clave.
Asi:
d [Nueve Reinas ] # devuelve Fabin Bielinsky,

Se pueden asignar valores a los valores.


NO se pueden obtener claves usando los
valores.

Diccionarios
No puede haber claves duplicadas en un diccionario, por lo
tanto la asignacin de un nuevo valor a una clave
preexistente borrar el viejo valor.
Los diccionarios no tienen concepto alguno de orden entre
sus elementos. Es incorrecto decir que los elementos estn
desordenados; simplemente no hay orden.
Los diccionarios no sirven solamente para almacenar
cadenas. Los valores de un diccionario pueden ser de
cualquier tipo, incluidas cadenas, enteros, objetos o incluso
otros diccionarios. Y en un mismo diccionario, los valores
no tienen que ser todos del mismo tipo: se pueden mezclar
y emparejar como sea necesario.
Aunque las claves estn restringidas a que sean de un tipo
inmutable, tambin se pueden mezclar y emparejar
distintos tipos de claves en un diccionario.

Borrar elementos
>>> d
{'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 42: 'douglas', 'retrycount': 3}
>>> del d[42]
>>> d
{'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 'retrycount': 3}
>>> d.clear()
>>> d
{}

Algunos mtodos del tipo Diccionario


dict.clear()

elimina todos los elementos del


diccionario dict

dict.get(clave,[default])

devuelve el valor de la clave o lo que


definamos por defecto si la clave no se
encuentra en el diccionario

dict.has_key(clave)

devuelve 1 si la clave se encuentra en el


diccionario. En cualquier otro caso
devuelve 0.

dict.items()

devuelve una lista de pares de tuplas


clave-valor.

dict.keys()

devuelve una lista de claves

dict.values()

devuelve la lista de valores

dict.update(dict2)

aade los pares clave-valor del diccionario


dict2 al diccionario dict

Ordenamiento (sorting)
Un diccionario es una estructura que NO tiene
orden: es un mapeo clave-valor.
Por ello, no existe el mtodo sort sobre un
diccionario. (si existe sobre las listas)
Si quisiramos ordenar un diccionario, hemos
de convertirlo en lista antes.

Ordenamiento de elementos en un
Diccionario
El mtodo keys sobre un diccionario devuelve una lista de
claves no ordenada
El mtodo sort sobre una lista devuelve la lista ordenada
El contructor dict() construye un diccionario directamente a
partir de una lista de clave-valores almacenados como
tuplas

>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])


{'sape': 4139, 'jack': 4098, 'guido': 4127}
>>> dict([(x, x**2) for x in (2, 4, 6)])
{2: 4, 4: 16, 6: 36}

Ordenamiento: esto no funciona!


Quien lo resuelve?
>>> d={10: "nueve reinas", 5: "Lo que el viento se llevo", 3: "Cafe Bagdad"}
>>> d
{10: 'nueve reinas', 3: 'Cafe Bagdad', 5: 'Lo que el viento se llevo'}
>>> keys=d.keys()
>>> keys
[10, 3, 5]
>>> keys.sort()
>>> keys
[3, 5, 10]
>>> a=[d[key] for key in keys]
>>> a
['Cafe Bagdad', 'Lo que el viento se llevo', 'nueve reinas']
>>> dict([(key,d[key]) for key in keys])
{10: 'nueve reinas', 3: 'Cafe Bagdad', 5: 'Lo que el viento se llevo'}

Das könnte Ihnen auch gefallen