2010-06-10 31 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) 
相关问题