Estructuras de datos básicas: Diccionarios

Educator Courses » Programación básica en Python » Estructuras de datos básicas: Diccionarios

Iterando

Contents

Iterando

Los diccionarios son secuencia y por lo tanto pueden ser iterados.

Anteriormente se usaba el metodo keys para obtener las llaves, así como items para obtener los elementos. Ambos métodos devuelven una lista con las llaves o los valores en el diccionario. Existe otro método con el que se obtiene una lista de tuplas, con dos elementos cada tupla, la llave y el valor, este metodo es iteritems. En versiones mas nuevas de Python no es necesario, iterar un diccionario es iterar sobre sus llaves, de hecho, en Python 3 iteritems no esta disponible.

>>> datos = {"nombre": "Marco Antonio", "apellidos": "Islas Cruz"}
>>> for i in datos:
... print i
...
apellidos
nombre

Como podemos ver, iterar un diccionario nos devuelve las llaves, usando iteritems sería algo asi:

>>> datos = {"nombre": "Marco Antonio", "apellidos": "Islas Cruz"}
>>> for i in datos.iteritems():
... print i
...
('apellidos', 'Islas Cruz')
('nombre', 'Marco Antonio')

Pero, si ya no está disponible en Python 3, como obtengo los valores?, fácil:

>>> datos = {"nombre": "Marco Antonio", "apellidos": "Islas Cruz"}
>>> for i in datos:
... print(i),
... print(datos[i])
...
apellidos Islas Cruz
nombre Marco Antonio

Pero.. que si yo lo quiero ordenado?. Generalmente no es una recomendación, si requieres datos ordenados entonces usa “listas y tuplas”, en su defecto es mejor que obtengas la lista de las llaves, la ordenes y la iteres.

>>> b = {"a":"b", "c":"d","e":"f","x":"y","z":"j"}
>>> b
{'a': 'b', 'x': 'y', 'c': 'd', 'z': 'j', 'e': 'f'}
>>> keys = b.keys()
>>> keys.sort()
>>> for k in keys:
... print k, b[k]
...
a b
c d
e f
x y
z j

Usando keys podemos iterar usando while tal como vimos en el ejemplo de listas y tuplas.


Si te gusta el tutorial, por favor mándame un mensaje, mi twitter: @markuzmx , tal vez te gustó tanto que prefieras hacer una donación via paypal la cantidad tu la pones ? Gracias por apoyarme.

Loading

You must be logged in to take the quiz.