在Python中通过字典或列表进行FOR循环时,如何获取项的键?

Mik*_*ike 12 python

我是Python的新手.

说我有一个清单:

list = ['A','B','C','D']
Run Code Online (Sandbox Code Playgroud)

这里每个项目的关键是0,1,2,3 - 对吗?

现在我将使用for循环遍历它...

for item in list:
    print item
Run Code Online (Sandbox Code Playgroud)

那很好,我可以打印出我的清单.

我如何在这里获得密钥?例如,能够做到:

print key
print item
Run Code Online (Sandbox Code Playgroud)

在每个循环?

如果列表无法做到这一点,那么自己不会声明键,是否可以使用词典?

谢谢

Joh*_*web 14

对于lists和dicts ,答案是不同的.

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
Run Code Online (Sandbox Code Playgroud)

我在这里使用了你的例子,但是调用list' l',以避免与保留字冲突.

如果你遍历a 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
Run Code Online (Sandbox Code Playgroud)


Mar*_*ers 10

你想要索引,而不是密钥.为此,您可以使用枚举:

for index, item in enumerate(l):
    print index
    print item
Run Code Online (Sandbox Code Playgroud)

这在Python教程中的循环技术一节中提到,该教程还介绍了在获取键和值时循环字典.

>>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}
>>> for k, v in knights.iteritems():
...     print k, v
...
gallahad the pure
robin the brave
Run Code Online (Sandbox Code Playgroud)

  • 你忘记了枚举;) (3认同)