2011-09-02 14 views
5

Sono davvero nuovo in Python e non riesco a trovare alcuna informazione a riguardo. Ho un array associativo item,Come convertire un array associativo in python?

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

voglio convalidare il contenuto della voce, ma io non voglio usare il nome indice come 'title', ma solo avere un ciclo for e iterare su tutte le voci in oggetto indipendentemente dalla loro significato . Qualcosa del genere

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

Qualche idea o suggerimento?

risposta

16

In Python, gli array associativi sono chiamati dictionaries.

Un buon modo per scorrere un dict è quello di utilizzare .iteritems():

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

Se avete solo bisogno di valori, utilizzare .itervalues():

for value in item.itervalues(): 
    print value 

Come si impara di più su Python e dizionari, prendere nota della differenza tra .iteritems()/itervalues() (che restituisce un iteratore) e items()/values() (che restituisce una lista (matrice)).

In Python 3

.iteritems()/.itervalues() sono stati rimossi e items()/values()/keys() iteratori ritorno sui corrispondenti sequenze.

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

Nota: in Python 3, questi diventano '.items()' e '.values ​​()' (e un nuovo arrivato potrebbe aver scelto per scaricare Python 3). –

+0

@Thomas Buon punto, grazie. Lascerò la risposta come è per ora dato che Python 2 sembra essere ancora l'impostazione predefinita per molte distro e penso che sia importante per i nuovi arrivati ​​riconoscere la differenza tra iteratori/generatori ed elenchi. –

+1

Prego. Aggiungerò che molti utenti potrebbero trovarsi su Windows, dove non esiste affatto un Python predefinito. Non ho idea se questo si applica a questo questionario, ma vale la pena considerare. –

6

Ci sono tre modi per eseguire iterazioni su un dizionario:

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 .. Ho perso il tuo primo esempio nella mia risposta. È utile poiché mostra che iterare un 'dict' ti dà le chiavi. +1 –

Problemi correlati