10
18/3/2014 Programacion en python: DICCIONARIOS EN PYTHON http://pycol.blogspot.com/2009/03/diccionarios-en-python.html 1/10 LUNES, 2 DE MARZO DE 2009 DICCIONARIOS EN PYTHON Los Diccionarios tambien llamados matrices asociativas , ya que son colecciones que contiene clave:valor ejemplo: >>>diccionario = {"enero":1,"febrero":2,"marzo":3} >>>diccionario {'enero': 1, 'marzo': 3, 'febero': 2} En la parte de la clave podemos usar cualquier tipo de valor inmutable: numeros, candenas, booleanos o tuplas menos listas o diccionarios dado que son mutables. La difrencia que existe entre diccionarios con la listas o las tuplas es que los valores almacenados en el diccionario no se le accede a traves de su indice si no atraves de su clave utilizando el operador de [] asi que de esta forma nuestros diccionarios no tienen un orden prestablecido :| >>>diccionario["enero"] 1 de esta misma manera podemos modificar valores >>>diccionario["enero"]=2 >>>diccionario["enero"] 2 lo dejamos como estaba >>>diccionario["enero"]=1 >>>diccionario["enero"] 1 bueno en los diccionarios no se usa el slicing, entre otras cosa ya que los diccionarios no son secuencia, sino Mappings (mapeados, asociaciones) SEGUIDORES Participar en este sitio Google Friend Connect Miembros (15) ¿Ya eres miembro? Iniciar sesión ARCHIVO DEL BLOG 2011 (1) 2009 (12) agosto (2) marzo (5) EVALUANDO PRIMEROS TEMAS: ENTRADA DE DATOS EN PYTHON SENTENCIAS CONDICIONALES FUNCIONES EN PYTHON DICCIONARIOS EN PYTHON febrero (5) DATOS PERSONALES CREAMOSTUWEB VER TODO MI PERFIL PROGRAMACION EN PYTHON SITIO DEDICADO A LA PROGRAMACION DE PYTHON, VEREMOS TODO LO QUE CORRESPONDE A ESTE LENGUAJE Y LAS DIFERENCIAS EN EL PYTHON 2.X Y PYTHON 3.X PARA CUANDO ESTEMOS AVANZADOS ABORDAREMOS TAL VEZ EL DESARROOLLO DE VIDEOJUEGOS CON ESTA BELLEZA DE LENGUAJE.

Programacion en Python_ Diccionarios en Python

Embed Size (px)

Citation preview

Page 1: Programacion en Python_ Diccionarios en Python

18/3/2014 Programacion en python: DICCIONARIOS EN PYTHON

http://pycol.blogspot.com/2009/03/diccionarios-en-python.html 1/10

L U N E S , 2 D E M A R Z O D E 2 0 0 9

DICCIONARIOS EN PYTHON

Los Diccionarios tambien llamados matrices asociativas , ya que son

colecciones que contiene clave:valor ejemplo:

>>>diccionario = {"enero":1,"febrero":2,"marzo":3}

>>>diccionario

{'enero': 1, 'marzo': 3, 'febero': 2}

En la parte de la clave podemos usar cualquier tipo de valor

inmutable: numeros, candenas, booleanos o tuplas menos listas o

diccionarios dado que son mutables. La difrencia que existe entre

diccionarios con la listas o las tuplas es que los valores almacenados

en el diccionario no se le accede a traves de su indice si no atraves

de su clave utilizando el operador de [] asi que de esta forma

nuestros diccionarios no tienen un orden prestablecido :|

>>>diccionario["enero"]

1

de esta misma manera podemos modificar valores

>>>diccionario["enero"]=2

>>>diccionario["enero"]

2

lo dejamos como estaba

>>>diccionario["enero"]=1

>>>diccionario["enero"]

1

bueno en los diccionarios no se usa el slicing, entre otras cosa ya que

los diccionarios no son secuencia, sino Mappings (mapeados,

asociaciones)

S E G U I D O R E S

Participar en este sitioGoogle Friend Connect

Miembros (15)

¿Ya eres miembro? Iniciar sesión

A R C H I V O D E L B L O G

► 2011 (1)

▼ 2009 (12)

► agosto (2)

▼ marzo (5)

EVALUANDO PRIMEROS TEMAS:

ENTRADA DE DATOS EN

PYTHON

SENTENCIAS CONDICIONALES

FUNCIONES EN PYTHON

DICCIONARIOS EN PYTHON

► febrero (5)

D A T O S P E R S O N A L E S

CREA M OSTUW EB

V ER TODO M I PERFIL

P R O G R A M A C I O N E N P Y T H O NS I T I O D E D I C A D O A L A P R O G R A M A C I O N D E P YT HO N , V E R E M O S T O D O L O Q U E C O R R E S P O N D E A

E S T E L E N G U A J E Y L A S D I F E R E N C I A S E N E L P YT HO N 2 . X Y P YT HO N 3 . X P A R A C U A N D O E S T E M O S

A V A N Z A D O S A B O R D A R E M O S T A L V E Z E L D E S A R R O O L L O D E V I D E O J U E G O S C O N E S T A B E L L E Z A D E

L E N G U A J E .

Page 2: Programacion en Python_ Diccionarios en Python

18/3/2014 Programacion en python: DICCIONARIOS EN PYTHON

http://pycol.blogspot.com/2009/03/diccionarios-en-python.html 2/10

FUNCIONES BASICAS :

has_key(k) Comprueba si el diccionario tiene la clave k. Es

equivalente a la sin-

taxis k in D.

valido en python 2.x veamos:

>>>diccionario.has_key("enero")

True

si la clave enero se encuentra en nuestro diccionario nos devuelve

True en caso contrario False, una equivalencia de esto seria:

>>> "enero" in diccionario

True

Debido a esta equivalencia este metodo se convertio en algo

redundante producinedo una ambiguedad innecesaria, debido a esto

la funcion D.has_key(k) fue eliminada de Python 3.x veamos:

valido solo en python 3.x

>>> "enero" in diccionario

True

ahora probemos la funcion has_key(k) en python 3.x

>>>diccionario.has_key('febrero')

Traceback (most recent call last):

File "", line 1, in

AttributeError: 'dict' object has no attribute 'has_key'

como podemos comprobar la funcion has_key fue eliminada de python

3.x pero de igual forma contamos con >>>"enero" in diccionario para

saber si se encuentra una clave de un diccionario :)

get(k[, d]) Busca el valor de la clave k en el diccionario. Es

equivalente a utilizar D[k] pero al utilizar este método podemos

indicar un valor a devolver por defecto si no se encuentra la clave,

mientras que con la sintaxis D[k], de no existir la clave se lanzaría

Page 3: Programacion en Python_ Diccionarios en Python

18/3/2014 Programacion en python: DICCIONARIOS EN PYTHON

http://pycol.blogspot.com/2009/03/diccionarios-en-python.html 3/10

una excepción veamos:

>>>diccionario.get("marzo")

3

esto tambien lo podiamos averiguar de la froma D[k]

>>>diccionario["marzo"]

3

la ventaja de la funcion get(k[, d]) es que podemos indicar un valor

a devolver si la clave no esta:

>>>diccionario.get("abril","valor no encontrado de la clave dada")

>>>'valor no encontrado de la clave dada'

bueno ahi defini un mensaje personalizado pero puede ser tambien

que devuelva un entero o una lista etc.

items() Devuelve una lista de tuplas con pares clave-valor.

python 2.x

>>> diccionario.items()

[('enero', 2), ('marzo', 3), ('febero', 2)]

python 3.x

>>> list[diccionario.items()]

[('enero', 2), ('marzo', 3), ('febero', 2)]

como ven el resutado devuelto es una lista [(clave:valor),......]

keys() Devuelve una lista de las claves del diccionario.

python 2.x

>>>diccionario.keys()

['enero', 'marzo', 'febero']

python 3.x

>>>list(diccionario.keys())

['enero', 'marzo', 'febero']

Page 4: Programacion en Python_ Diccionarios en Python

18/3/2014 Programacion en python: DICCIONARIOS EN PYTHON

http://pycol.blogspot.com/2009/03/diccionarios-en-python.html 4/10

values() Devuelve una lista de los valores del diccionario.

python 2.x

>>> diccionario.values()

[2, 3, 2]

python 3.x

>>> list(diccionario.values())

[2, 3, 2]

pop(k[, d]) Borra la clave k del diccionario y devuelve su valor. Si no

se encuentra dicha clave se devuelve d si se especificó el parámetro

o bien se lanza una excepción.

equivalente tanto para python 2.x como 3.x

>>> diccionario.pop("enero")

2

>>>diccionario

{'marzo': 3, 'febero': 2}

tambien podemos hacer esto y es equivalentes tanto Python 2.x y

3.x:

del diccionario ["marzo"]

>>>diccionario

{'febero': 2}

si queremos eliminar todos los elemntod del dicionario tan solo

hacemos:

>>>diccionario.clear()

{ }

si se fijaron bien los metodos keys(), values() y items() de un

diccionario devolvían listas en key() devolvia una lista de las claves

de un diccionario, de values() devolvia una lista de los valores de un

diccionario y items() devolvia una lista con clave:valor del diccionario

osea el diccionario completo pero en una lista, cada una de esas

funciones tiene una funcion analoga que serian:

keys() analoga iterkeys()

Page 5: Programacion en Python_ Diccionarios en Python

18/3/2014 Programacion en python: DICCIONARIOS EN PYTHON

http://pycol.blogspot.com/2009/03/diccionarios-en-python.html 5/10

values() analoga itervalues()

items() analoga iteritems()

estas funciones analogas devuelven iteradores sobre la misma

secuencia que las anteriores, esto de los iteradores lo explicare con

mas detalle mas adelante.

tambien se fijaron que en python 3.x hacemos en algunas funciones

el llamados de list list(diccionario.values()) para imprimir los datos

buen es que en python 3 se introduce un concepto llamado vista y

vamos a tratar de ver las ventajas que trae esto contra versiones

anteriores de python 3.x ya que cuando hacemos diccionario.keys()

en python3 obtengo es la vista del diccionario veamos:

python 3.x

>>>d=diccionario.keys() #obtengo la vista del diccionario

>>>type(v)

class 'dict_keys'

como ves es de tipo

class 'dict_keys'

>>> iterador= iter(v) # construyo un iterador a partir de la vista (no

del dict!) >>> keys = list(v) # construyo una lista a partir de la vista

como ves es por eso que en python 3.x construimos la lista a partir

de la vista si estamos en una version de python 2.x los iteradores lo

conseguiamos de las funciones homologas (iterkeys(),iteritems() y

itervalues() ) y en python 3.x solo con la funcion iter iterador= iter(v)

veamos con un ejemplo el concepto de vista para Python 3.x y su

funcion iter() que su proposito puede ser mas para compatibilidad

hacia atras con versiones previs a python 3.x

diccionario de ejemlo:

>>>dic={"guido":"python","linus":"linux","richard":"gnu"}

python 2.x

>>>iterador=dic.iterkeys()

Page 6: Programacion en Python_ Diccionarios en Python

18/3/2014 Programacion en python: DICCIONARIOS EN PYTHON

http://pycol.blogspot.com/2009/03/diccionarios-en-python.html 6/10

ahora borremos un elemento del diccionario:

>>>del(dic["linus"])

ahora iteramos:

>>>for key in iterador:

.... print key

....

Traceback (most recent call last):

File "", line 1, in

NameError: name 'iterador' is not defined

bueno nos genera un error ya que nuestro iterador tiene un

diccionario definido y al modificarlo

ya no podemos iterarlo osea recorrerlo con el for :( y ahi es donde

entra el concepto de vista con python3 porque las vista son iterables

:) veamos:

python 3.x

>>>dic={"guido":"python","linus":"linux","richard":"gnu"}

obtenemos la vista:

>>> vista=dic.keys()

ahora borremos un elemento del diccionario

>>>del(dic["linus"])

ahora iteramos con la vista:

>>>for key in vista:

.... print (key)

....

guido

richard

si en python 3.x hubieramos obtenido el iterador atraves de la

funcion iter() asi iterador=iter(dic.keys()) si hacemos asi en python 3

tendriamos un comportamiento similar a Python 2.x y es el de que

ese iterador no soporta modificacion durante la ejecucion.

Page 7: Programacion en Python_ Diccionarios en Python

18/3/2014 Programacion en python: DICCIONARIOS EN PYTHON

http://pycol.blogspot.com/2009/03/diccionarios-en-python.html 7/10

Bueno creo que con lo que llevamos hasta aqui de python que son los

tipos de datos operadores, listas, tuplas y diccionarios que era algo

fundamental antes de iniciar con funciones, sentencias condicionales

y bucles, que lo veremos ya en el proximo post. vamos despacios

porque con el lanzamiento de python3 en cada tema vamos

mostrando como se hace en python 2.x y ahora como se hace en

python 3.x bueno no es todo pero donde hallan cambios lo ire

indicando para que los que andan practicando vean el porque de las

excepciones que nos arroja, bueno cualquier duda me la hacen saber

bye.

Write By Hackchan

PUBLICADO POR CREAM OSTUWEB EN 13:46

1 6 C O M E N T A R I O S :

Anónimo 7 de junio de 2011, 19:00

Realmente excelente, estoy enseñando Python en un colegio y

tu pagina es muy muy util. Muchas gracias, Dios te bendiga.

Andrés

Responder

Anónimo 27 de octubre de 2011, 18:15

Como seria un diccionario que en la clave contiene tuplas??

Responder

c@t_green 20 de marzo de 2012, 10:08

komo imprimo la frases del dicionario y su significado

palabra(significado)

y q me kede asi

Responder

Anónimo 8 de mayo de 2012, 8:57

muy bien!

Responder

Anónimo 8 de mayo de 2012, 8:58

Page 8: Programacion en Python_ Diccionarios en Python

18/3/2014 Programacion en python: DICCIONARIOS EN PYTHON

http://pycol.blogspot.com/2009/03/diccionarios-en-python.html 8/10

sale graciaas

Responder

Anónimo 8 de mayo de 2012, 8:58

ke onda mau como andas???????

Responder

Anónimo 8 de mayo de 2012, 8:59

ok muy bueno

Responder

Anónimo 8 de mayo de 2012, 8:59

yo bien y ustedes???

Responder

Anónimo 8 de mayo de 2012, 9:00

exelente aka comuinicandonos con la ana jajajajaja

Responder

Anónimo 8 de mayo de 2012, 9:04

gracias por resolver estas dudas!!

Responder

Anónimo 11 de mayo de 2012, 1:42

Hola podria hacer una pregunta?

Responder

Chu-k0 14 de septiembre de 2012, 11:46

Hola gracias por los tips de los diccionarios realmente útil ;)

aparte el plus de mostrar diferencias entre cada versión te

luciste man ;)

Entre porque queria hacer un diccionario con varios valores,

ahora me quedo claro que la clave no puede ser lista, pero los

valores no mencionaste restricciones así que hize la prueb ay

si funciono ;)

>>>lista = ["hello", "hi"]

>>>dict = {"saludos": lista}

Page 9: Programacion en Python_ Diccionarios en Python

18/3/2014 Programacion en python: DICCIONARIOS EN PYTHON

http://pycol.blogspot.com/2009/03/diccionarios-en-python.html 9/10

Entrada más reciente Entrada antigua

Introduce tu comentario...

Comentar como: Cuenta de Google

Publicar

Vista previa

Página principal

>>>dict

{"saludos": ["hello", "hi"]}

Gracias chaoo

Responder

Anónimo 18 de julio de 2013, 0:53

Gracias, me ayudaste con unas dudas! Sigue así!

Responder

Anónimo 21 de noviembre de 2013, 17:41

=)

Responder

Anónimo 4 de diciembre de 2013, 7:35

muy completo.. gracias

Responder

Anónimo 10 de febrero de 2014, 7:50

gracias, esta claro y bien documentado.

Responder

Page 10: Programacion en Python_ Diccionarios en Python

18/3/2014 Programacion en python: DICCIONARIOS EN PYTHON

http://pycol.blogspot.com/2009/03/diccionarios-en-python.html 10/10

Suscribirse a: Enviar comentarios (Atom)