2013-06-06 6 views

cevap

21

kullanabilirsiniz enumerate() function:

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

enumerate() verimli baştan döngü vardır Yineleyici bir sayımını ekler. Yukarıdaki örnekte, örneğinizle eşleşmesi içinnumarasında saymaya başlamak için enumerate(); U bile hiçbir sipariş sahiptir sözlük gibi bir kap üzerinde numaralandırabilmesidir bilmiyordum

>>> 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

Teşekkür: Varsayılan 0.

Demo de başlamaktır. Daha önce listedeki numarayı kullandım. – vkaul11

+0

küçük bir fark - orjinal kod 1'den başlar (bu yüzden 'numaralandırın (öge, 1)') –

+0

@ vkaul11: bir emir var, bu sadece eklemeye bağlı olduğu için güvendiğiniz bir sipariş değil ve sözlüğün silme tarihi. :-) Diğer bir deyişle, '.iteritems()' yöntemi, öğeleri bir * rasgele * düzende döndürür. enumerate() 'umursamıyor; Sadece kodunuzu yaptığınız gibi çok sayıda öğe sayar ve her defasında dahili sayaca 1 eklenir. –

İlgili konular