Adi*_*shn 40 python dictionary enumerate python-3.x
我知道我们enumerate用于迭代列表,但我在字典中尝试过它并没有给出错误.
码:
enumm = {0: 1, 1: 2, 2: 3, 4: 4, 5: 5, 6: 6, 7: 7}
for i, j in enumerate(enumm):
print(i, j)
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
0 0
1 1
2 2
3 4
4 5
5 6
6 7
Run Code Online (Sandbox Code Playgroud)
有人可以解释输出吗?
小智 47
输出的第一列是每个项目的索引,enumm第二列是其键.如果要迭代字典,请使用.items():
for k, v in enumm.items():
print(k, v)
Run Code Online (Sandbox Code Playgroud)
输出应该如下:
0 1
1 2
2 3
4 4
5 5
6 6
7 7
Run Code Online (Sandbox Code Playgroud)
Joã*_*ida 42
除了已经提供的答案之外,Python中还有一个非常好的模式,它允许您枚举字典的键和值.
通常情况下,您枚举字典的键:
example_dict = {1:'a', 2:'b', 3:'c', 4:'d'}
for i, k in enumerate(example_dict):
print(i, k)
Run Code Online (Sandbox Code Playgroud)
哪个输出:
0 1
1 2
2 3
3 4
Run Code Online (Sandbox Code Playgroud)
但是如果你想通过键和值枚举这就是这样的:
for i, (k, v) in enumerate(example_dict.items()):
print(i, k, v)
Run Code Online (Sandbox Code Playgroud)
哪个输出:
0 1 a
1 2 b
2 3 c
3 4 d
Run Code Online (Sandbox Code Playgroud)
roa*_*r66 13
for k,v in dict.iteritems():
print(k,v)
Run Code Online (Sandbox Code Playgroud)
Jor*_*kie 12
我以为我想补充一下,如果您想枚举字典的索引,键和值,则for循环应如下所示:
for index, (key, value) in enumerate(your_dict.items()):
print(index, key, value)
Run Code Online (Sandbox Code Playgroud)
小智 6
enumerate()当处理列表时,实际上给出了列表中项目的索引和值。例如:
l = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for i, j in enumerate(list):
print(i, j)
Run Code Online (Sandbox Code Playgroud)
给出
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
Run Code Online (Sandbox Code Playgroud)
其中第一列表示项目的索引,第二列表示项目本身。
在字典里
enumm = {0: 1, 1: 2, 2: 3, 4: 4, 5: 5, 6: 6, 7: 7}
for i, j in enumerate(enumm):
print(i, j)
Run Code Online (Sandbox Code Playgroud)
它给出了输出
0 0
1 1
2 2
3 4
4 5
5 6
6 7
Run Code Online (Sandbox Code Playgroud)
其中第一列给出对的索引key:value,第二列表示keys字典的索引enumm。
因此,如果您希望第一列为keys第二列values,最好尝试dict.iteritems()(Python 2)或dict.items()(Python 3)
for i, j in enumm.items():
print(i, j)
Run Code Online (Sandbox Code Playgroud)
输出
0 1
1 2
2 3
4 4
5 5
6 6
7 7
Run Code Online (Sandbox Code Playgroud)
瞧
由于您正在使用,enumerate因此您i实际上是键的索引而不是键本身。
因此,即使没有 key ,您也会进入3该行的第一列。3 43
enumerate 遍历数据结构(无论是列表还是字典),同时还提供当前的迭代次数。
因此,这里的列是迭代次数,后跟字典中的键 enum
其他解决方案已经展示了如何迭代键和值对,所以我不会在我的中重复相同的内容。