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)
键值对包装在元组中,因此必须以相同的方式解压缩它们.
假设您只想枚举键/值对(并且不需要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)
请注意,条目不一定是有序的。