如何使用`enumerate`迭代`dict`并解压缩索引,键和值以及迭代

时间:2017-02-12 21:53:28

标签: python dictionary

如何使用dict迭代enumerate,以便我可以在迭代时解包索引,键和值?

类似的东西:

for i, (k, v) in enumerate(mydict):
    # some stuff

我想迭代一个名为mydict的字典中的键和值并对它们进行计数,所以我知道我在最后一个字典中的时间。

1 个答案:

答案 0 :(得分:48)

您应该将mydict.items()enumerate一起使用,而不是使用mydict

for i, (k, v) in enumerate(mydict.items()):
    # your stuff

示例示例:

mydict = {1: 'a', 2: 'b'}
for i, (k, v) in enumerate(mydict.items()):
    print("index: {}, key: {}, value: {}".format(i, k, v))

# which will print:
# -----------------
# index: 0, key: 1, value: a
# index: 1, key: 2, value: b

<强>说明:

  • enumerate返回一个迭代器对象,其中包含以下格式的元组:[(index, list_element), ...]
  • dict.items()返回一个迭代器对象(在Python 3.x中。它在Python 2.7中返回list ,格式为:[(key, value), ...]
  • 在组合在一起时,enumerate(dict.items())将返回一个包含元组的迭代器对象,格式为:[(index, (key, value)), ...]