2013-06-06 7 views

Antwort

21

können Sie verwenden die enumerate() function:

for count, (key, value) in enumerate(my_dict.iteritems(), 1): 
    print key, value, count 

enumerate() fügt effizient eine Zählung der Iterator Sie Schleifen über sind. Im obigen Beispiel sage ich enumerate(), um zu beginnen, an 1 zu zählen, um Ihrem Beispiel zu entsprechen; Die Standardeinstellung ist 0.

Demo zu starten:

>>> somedict = {'foo': 'bar', 42: 'Life, the Universe and Everything', 'monty': 'python'} 
>>> for count, (key, value) in enumerate(somedict.iteritems(), 1): 
...  print key, value, count 
... 
42 Life, the Universe and Everything 1 
foo bar 2 
monty python 3 
+0

Dank ich wusste nicht, dass u auch auf einen Container wie Wörterbuch aufzählen kann, die keine Ordnung hat. Ich habe zuvor in der Liste aufgezählt. – vkaul11

+0

ein kleiner Unterschied - der ursprüngliche Code beginnt bei 1 (also verwenden 'enumerate (Elemente, 1)') –

+0

@ vkaul11: Es gibt eine Bestellung, es ist nur nicht eine Reihenfolge, auf die Sie verlassen sollten, da es abhängig von der Einfügung ist Löschverlauf des Wörterbuchs. Mit anderen Worten, die '.iteritems()' Methode gibt Elemente in einer * beliebigen * Reihenfolge zurück. 'enumerate()' ist egal; Es zählt Elemente genau wie Ihr Code und fügt jedes Mal 1 zum internen Zähler hinzu. –

Verwandte Themen