2011-09-02 33 views
5

Soy realmente nuevo en Python y no puedo encontrar ninguna información sobre esto. Tengo una matriz asociativa item,¿Cómo convertir una matriz asociativa en python?

item['id'] = 0 
item['title'] = 'python' 

quiero para validar el contenido del tema pero no quiero utilizar el nombre de índice como 'title', pero sólo hay un bucle y iterar sobre todas las entradas de artículo, independientemente de su significado . Algo así

for a in range(0, len(item)): 
    print (item[a]) 

¿Alguna idea o sugerencia?

Respuesta

16

En Python, las matrices asociativas se llaman dictionaries.

Una buena manera de iterar a través de un diccionario es utilizar .iteritems():

for key, value in item.iteritems(): 
    print key, value 

Si sólo necesita los valores, utilice .itervalues():

for value in item.itervalues(): 
    print value 

A medida que aprenda más sobre Python y diccionarios, tome nota de la diferencia entre .iteritems()/itervalues() (que devuelve un iterador) y items()/values() (que devuelve una lista (matriz)).

En Python 3

.iteritems()/.itervalues() se han eliminado y items()/values()/keys() iteradores de retorno en las secuencias correspondientes.

for key, value in item.items(): 
    print(key) 
    print(value) 
+6

Nota: en Python 3, éstos se convierten en '.items()' y '.values ​​()' (y un recién llegado podría haber elegido para descargar Python 3). –

+0

@Thomas Buen punto, gracias. Dejaré la respuesta como está por ahora ya que Python 2 parece ser el predeterminado para muchas distribuciones, y creo que es importante que los recién llegados reconozcan la diferencia entre iteradores/generadores y listas. –

+1

De nada. Añadiré que muchos usuarios pueden estar en Windows, donde no hay ningún Python predeterminado. No tengo idea de si eso se aplica a este interrogador, pero vale la pena considerarlo. –

6

Hay tres formas de iterar un diccionario:

item = {...} 
for key in item: # alternatively item.iterkeys(), or item.keys() in python 3 
    print key, item[key] 

item = {...} 
for value in item.itervalues(): # or item.values() in python 3 
    print value 

item = {...} 
for key, value in item.iteritems(): # or item.items() in python 3 
    print key, value 
+0

Ahh ... Me perdí el primer ejemplo en mi respuesta. Eso es útil ya que muestra que iterar un 'dict' te da claves. +1 –

Cuestiones relacionadas