枚举字典迭代键和值

Wor*_*orm 11 python dictionary enumerate python-3.x

我有一个字典regionspointcount,它将区域名称(str)作为键,并将该区域内的一种特征类型(int)作为值保存{'Highland':21}.

我想在枚举时迭代字典的键和值.有没有办法做这样的事情:

for i, k, v in enumerate(regionspointcount.items()):
Run Code Online (Sandbox Code Playgroud)

或者我是否必须使用计数变量?

cs9*_*s95 19

鉴于字典d:

d
# {'A': 1, 'B': 2, 'C': 3, 'D': 4}
Run Code Online (Sandbox Code Playgroud)

您可以使用元组解压缩for循环标头中的键值对.

for i, (k, v) in enumerate(d.items()):
     print(i, k, v)

# 0 A 1
# 1 B 2
# 2 C 3
# 3 D 4
Run Code Online (Sandbox Code Playgroud)

要了解为什么需要额外的parens,请查看以下原始输出enumerate:

list(enumerate(d.items()))
# [(0, ('A', 1)), (1, ('B', 2)), (2, ('C', 3)), (3, ('D', 4))]
Run Code Online (Sandbox Code Playgroud)

键值对包装在元组中,因此必须以相同的方式解压缩它们.


Adr*_*n W 5

假设您只想枚举键/值对(并且不需要index i),则可以使用iter()

d={'A': 1, 'B': 2, 'C': 3, 'D': 4}
for k,v in iter(d.items()):
    print(k,v)
Run Code Online (Sandbox Code Playgroud)

这打印像

A 1
C 3
B 2
D 4
Run Code Online (Sandbox Code Playgroud)

请注意,条目不一定是有序的。