$ python
Python 2.6.6 (r266:84292, Nov 21 2013, 10:50:32)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import collections
>>> a = collections.OrderedDict({'a':'1','b':'2'})
>>> a
OrderedDict([('a', '1'), ('b', '2')])
>>> for i, (k,v) in enumerate(a.iteritems()):
... print i, k, v
...
0 a 1
1 b 2
, çirkin mi.
Neden endeksle ilgilendiğinizi bilmiyorum. Dict arasındaki fikir, endeksten cahil olmanızdır. Dict ve kuyrukların arkasında çok fazla mantık var, bu sayede indekslerden arınmış olacağız.
Dizini almakta ısrar ederseniz iki kez yineleme yapmaya gerek yoktur.
en numaralandırmak listelerine ne görelim:
>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1))
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
Not "start".
Numaralandırma listeleri yönetmeyi bilir. Sözlükler, verileri canavarın göbeğinde bir yerde saklar. Öyleyse bir dikte ile numaralandırırsak ne olur? Zarif için giderdim Bu açıdan
>>> for i,k in enumerate(a):
... print i,k
...
0 a
1 b
:
>>> for i,k in enumerate(a):
... print i,k,a[k]
...
0 a 1
1 b 2
ben "i, (k, v) içinde" çok yakında iç yapının çok fazla açığa hissediyorum. "for i, k in" ile korunuyoruz ve zamanlar refakatçiye gelince, dönme şeklimize dokunmamız gerekmiyor. Sadece döngüde yaptığımız şeyi değiştirmeliyiz. Dikkat çekmek için daha az bir yönü.
Numaralandırmanın bu çağrısının 2'den sonra herhangi bir pythonda da aynı şekilde çalıştığından bahsetmiyorum.6 :)
https://docs.python.org/2/library/stdtypes.html#dict.iteritems
https://docs.python.org/2/library/functions.html#enumerate
Neden 'dict.items()' seçeneğini kullanmanızı öneriyorsunuz? Tam anlamıyla yeni bir liste oluşturur. – farukdgn
@farukdgn, Python 3.x'te, 'dict.items()' bir görünümü değil, bir listeyi döndürür. Ve Python 3.x'te 'dict.iteritems' yoktur. [Sözlük görünümü] 'ne bakın (https://docs.python.org/3/glossary.html#term-dictionary-view). – falsetru