2010-06-10 74 views
9

我是Python新手。如何通過Python中的字典或列表執行FOR循環時獲取項目的關鍵字?

說我有一個列表:

list = ['A','B','C','D'] 

分別這裏每個項目的關鍵是0,1,2,3 - 對嗎?

現在,我通過它去循環與for循環...

for item in list: 
    print item 

那太好了,我可以打印出我的列表。

我該如何獲得鑰匙?例如能夠做到:

print key 
print item 

每個循環?

如果這是不可能的列表中,其中沒有聲明自己的密鑰,它可能與一個詞典?

謝謝

+6

不要使用'list'作爲變量名。 – 2010-06-10 22:52:45

回答

9

答案是list S和dict期不同。

A list沒有key。每個項目將有一個索引。可以列舉的清單是這樣的:

>>> l = ['A','B','C','D'] 
>>> for index, item in enumerate(l): 
...  print index 
...  print item 
... 
0 
A 
1 
B 
2 
C 
3 
D 

我在這裏用你的榜樣,但稱listl」,以避免與保留字發生衝突。

如果我們通過遍歷dict,你都交給鍵:

>>> d = {0: 'apple', 1: 'banana', 2: 'cherry', 3: 'damson', } 
>>> for k in d: 
...  print k 
...  print d[k] 
... 
0 
apple 
1 
banana 
2 
cherry 
3 
damson 
+0

謝謝你,因爲你的第一個答案我會將其標記爲公認的。 關於列表變量名稱的好處,這只是一個例子,但我很好記住,無論如何。 感謝所有提交答案的人。我真的很難在從PHP獲得進展的時候去掌握Python。 – Mike 2010-06-10 23:21:44

+0

也感謝澄清術語「關鍵」和「索引」。 PHP似乎把這些東西都混淆成一個大球,至少這是我學習的方式。 – Mike 2010-06-10 23:23:14

10

你想索引,而不是關鍵。爲此,您可以使用enumerate

for index, item in enumerate(l): 
    print index 
    print item 

這在Python的教程,還包括遍歷字典同時獲得這兩個鍵和值的部分Looping Techniques被提及。

>>> knights = {'gallahad': 'the pure', 'robin': 'the brave'} 
>>> for k, v in knights.iteritems(): 
...  print k, v 
... 
gallahad the pure 
robin the brave 
+3

你忘了枚舉;) – 2010-06-10 22:42:22

+0

我認爲索引是關鍵... – mpen 2010-06-10 22:54:45

3

你應該使用字典,反正你可以這樣做:

for index, item in enumerate(yourlist): 
    print "index:%d item:%s" % (index, item) 
相關問題