2012-04-10 23 views
7

Ho un dizionarioEnumera le chiavi in ​​un dizionario?

Dict = {'ALice':1, 'in':2, 'Wonderland':3} 

sono riuscito a trovare modi per restituire valori chiave, ma non c'era modo di tornare nomi dei tasti.

voglio Python per tornare dizionario nomi chiave passo dopo passo (per ciclo), per esempio:

Alice 
in 
Wonderland 
+0

Potrei essere tentato di trasformarlo in un elenco appropriato di coppie chiave-valore e quindi ordinare in base al valore in questo esempio e quindi iterare. (Ricorda che le chiavi nel dizionario sono * non * ordinate). –

+0

L'ordinazione non è un problema per me. Non ne ho bisogno in un ordine specifico. Sto solo cercando di inserire i nomi dei tasti nel database SQL. – upapilot

risposta

13

È possibile utilizzare .keys():

for key in your_dict.keys(): 
    print key 

o semplicemente iterare il dizionario:

for key in your_dict: 
    print key 

Si noti che i dizionari non sono ordinati. Le chiavi risultanti usciranno in un ordine un po 'casuale:

['Wonderland', 'ALice', 'in'] 

Se vi preoccupate per ordine, una soluzione potrebbe essere quella di utilizzare gli elenchi, che sono ordinato:

sort_of_dict = [('ALice', 1), ('in', 2), ('Wonderland', 3)] 

for key, value in sort_of_dict: 
    print key 

Ora ottieni i risultati desiderati:

>>> sort_of_dict = [('ALice', 1), ('in', 2), ('Wonderland', 3)] 
>>> 
>>> for key, value in sort_of_dict: 
... print key 
... 
ALice 
in 
Wonderland 
+0

Sì, lo stavo modificando. Grazie! – Blender

+1

'per la chiave in your_dict.keys():' può essere semplificato in 'per la chiave in your_dict:' –

+0

Va bene grazie mille. Ordinare non è un problema per me :) – upapilot

1

dict ha un metodo keys().

Dict.keys() restituisce un elenco di chiavi o utilizza il metodo iteratore iterkeys().

1
def enumdict(listed): 
    myDict = {} 
    for i, x in enumerate(listed): 
     myDict[x] = i 

    return myDict 

indexes = ['alpha', 'beta', 'zeta'] 

print enumdict(indexes) 

stampe: { 'alpha': 0, 'beta': 1, 'zeta': 2}

Edit: se si desidera che il dict da ordinare uso ordereddict.

+0

Non è esattamente una risposta alla domanda, ma ho svalutato perché è un trucco pratico. – ardochhigh

Problemi correlati