Sei sulla pagina 1di 8

APRENDIENDO PYTHON DESDE CERO (diccionarios) El proximo objeto a estudiar seran los diccionarios, tal como las listas

son colecciones de objetos ordenadas, a los cuales se apunta por indices para saber la posicion de algun item en la misma, los diccionarios son tambien colecciones de objetos, pero no se apuntan por un indice de orden como en el caso de las listas, por lo cual se puede decir que son desordenados. Al no poder referenciarse por indices numericos, el referenciamiento de una entrada dentro de un diccionario se realiza por medio de keys, veremos a continuacion ejemplos que nos aclararan facilmente el panorama sobre este objeto tan util. Los diccionarios para diferenciarlos de las listas que se escribian entre corchetes, se escriben entre llaves {}, por lo tanto asi como la lista vacia era. L1=[] el diccionario vacio es D1={} aqu tenemos un simple ejemplo de un diccionario de dos entradas. D2 = {'spam': 2, 'eggs': 3} Vemos que cada entrada de un diccionario esta compuesto por un par de valores, en el ejemplo anterior la primera entrada esta compuesto por el par 'spam': 2 donde 'spam' es la key y el 2 es el valor asociado correspondiente, realmente aqu vemos que en las listas teniamos items apuntados por indices, aqu tenemos entradas, con un valor que es apuntado por keys que son strings, y cada valor tiene una key correspondiente y unica para poder ubicarlo en el diccionario. D2 = {'spam': 2, 'eggs': 3} Por ejemplo si en este diccionario quisiera ubicar entrada 1, no serviria de nada utilizar el metodo de indices D2[1] que serviria para listas, aqu es erroneo.

Alli lo vemos sale un error diciendo que en este diccionario no hay ninguna key con el valor 1, y por eso da error, si colocaramos.

Alli si la key 'eggs', me devuelve su valor correspondiente que es 3, de esta forma los diccionarios trabajan con entradas, que son un par, una string llamada key y su valor asociado correspondiente. Si tenemos este diccionario de 3 entradas D2 = {'spam': 2, 'ham': 1, 'eggs': 3} esta claro que las keys son las strings `spam', 'jam' y 'eggs' y sus valores correspondientes seran 2, 1 y 3. Realmente los diccionarios no tienen un orden, uno puede escribirlos en un orden determinado y cuando uno los llama mas adelante, estar en otro orden, python mantiene la relacion entre una key y su valor asociado inmutable, pero su ubicacin puede variar, ya que realmente no interesa, pues no se llama por indices de posicion.

Aqu vemos que yo escribi las entradas en un orden, y pyhon al mostrarlos, lo hizo en un orden diferente, pero nunca cambio la relacion entre una key y su valor asociado, por lo cual las propiedades del diccionario se mantienen, siempre en el ejemplo anterior, 'spam' se asocio con 2 y 'eggs' con 3. D9={'pepe': 5, 'ham': 'happy', 'spam': 2} Otro ejemplo en este caso el valor asignado a la key 'ham' es una string en este caso 'happy'. LARGO DE UN DICCIONARIO La funcion len, aqu tambien nos devuelve la cantidad de entradas que tiene un diccionario. D2 = {'spam': 2, 'ham': 1, 'pepe': 3} len (D2)

Logicamente el resultado es 3, pues posee tres entradas. La concatenacion y repeticion de diccionarios no esta soportada. TEST DE KEY Uno de los metodos incluidos para diccionarios, es has_key, el mismo le pregunta a un diccionario si tiene la key correspondiente entre las que posee.

D2 = {'spam': 2, 'ham': 1, 'pepe': 3} D2.has_key('ham')

Me responde que es verdadero, lo cual es logico porque posee dicha key, si pregunto una que no tiene, me respondera falso.

Otra forma alternativa de testear si un diccionario posee una key es 'ham' in D2

CREAR UNA LISTA DE LAS KEYS DE UN DICCIONARIO El metodo keys, buscara todas las keys de un diccionario y hara una lista con ellas.

Usando el diccionario anterior

D2 = {'spam': 2, 'ham': 1, 'pepe': 3} D2.keys( )

Vemos que ha creada una lista, por supuesto como toda lista va entre corchetes, y se puede asignar a otra variable que sera una lista.

CAMBIANDO DICCIONARIOS D2 = {'spam': 2, 'ham': 1, 'pepe': 3} Usando el ejemplo anterior podemos alterar un diccionario asignandole un nuevo valor correspondiente, a una key. D2['pepe']=5

Alli le cambio la asignacion a la key 'pepe', antes tenia el valor 3, ahora 5. Por supuesto como ya vimos, el valor asociado correspondiente , puede ser tanto numerico como strings, puedo asignarle a la key 'ham', el valor 'happy'.

BORRANDO UNA ENTRADA D2 = {'spam': 2, 'ham': 1, 'pepe': 5} del D2['ham']

No necesita mucha explicacion con del, borramos la entrada que queremos.

AGREGANDO ENTRADAS Se realiza de la misma forma que cambiabamos un valor asignado a una key, solo que en este caso al usar una key que no existe en el diccionario, python la creara.

Como la key 'hurra' no existia, creo una nueva entrada con dicha clave, y el valor asignado 90. MAS METODOS DE DICCIONARIO Python trae metodos especiales para trabajar en diccionarios algunos ya los vimos, existen mas por ejemplo: D.values() Usemos para todos estos ejemplos el diccionario D2. D2={'hurra': 90, 'pepe': 5, 'spam': 2} >>D2.values()

Me devuelve una lista con los valores asociados.

Alli asigne el resultado a una lista L4. D.items() Si a D2 , si le aplico el metodo items()

Me devuelve una lista con tantos items como entradas tenia el diccionario, ya sabemos que una lista

puede contener en un item, cualquier cosa, en este caso entre parentesis, esta cada key con su valor asociado. D.get() Si a D2 , si le aplico el metodo get

Me sirve para obtener el valor asignado, pasandole su key, de esta forma puedo utilizarlo asignandolo a una variable.

D.update() Ya dijimos que la concatenacion directa al estilo de las listas no existe, pero el metodo update hace algo bastante parecido. Sean: D2={'hurra': 90, 'pepe': 5, 'spam': 2} D3={'keke': 7, 'pepe': 7} D2.update (D3)

Vemos que a D2, le agrego las entradas de D3, y si alguna key ambos tienen similar, el resultado tendra el valor asociado de la ultima, por eso se llama update, porque agrega lo que no tiene y cambia si alguna key esta en ambas, por el valor de la ultima. El ejemplo es claro D2 no tenia la key 'keke', por eso se la agrego, y la key 'pepe' se actualizo al valor que tenia D3, o sea 7. UN EJEMPLO DE DICCIONARIO REALISTA table = {'Python': 'Guido van Rossum', 'Perl': 'Larry Wall', 'Tcl': 'John Ousterhout' } Alli tenemos la variable table, que es un diccionario, que esta compuesto de 3 entradas, cada una tiene una key que es el idioma, y su valor asociado es el autor del mismo. Ahora si creo una variable llamada lenguaje

lenguaje='Python' Ya que dicha variable es una key en mi diccionario, puedo hallar el nombre de su creador con el. >print table [lenguaje]

Imprimiendo de acuerdo al lenguaje, el nombre de su creador ITERACION Podemos iterar por las keys de un diccionario, usando el ejemplo anterior.

De esta forma iterara tomando x el valor de todas las keys de un diccionario, es similar a:

Si quiero imprimir los valores de un diccionario

Logicamente haciendo print table [x], ya que x toma el valor de las keys, imprimira los valores correspondientes. Si quiero hacer una tablita con cada key y su valor correspondiente al lado.

Queda medio desacomodado, si le pongo tabulacion.

Ahora quedo mejor jeje Bueno creo que con esto queda claro el tema dccionarios, si quieren averiguar los metodos restantes, siempre es buena practica hacerlo uno, hay algunos mas seguro se agregaran como anexo a esta parte, y podran tener la informacion y verificar si pudieron hallar los metodos por ustedes mismos correctamente. Hasta la parte 13 que veremos tuplas Ricardo Narvaja

Potrebbero piacerti anche