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

the*_*ink 32 python dictionary

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

就像是:

for i, (k, v) in enumerate(mydict):
    # some stuff
Run Code Online (Sandbox Code Playgroud)

我想遍历一个被调用的字典中的键和值mydict并计算它们,所以我知道我什么时候在最后一个.

Moi*_*dri 55

而不是使用的mydict,你应该使用mydict.items()enumerate如下:

for i, (k, v) in enumerate(mydict.items()):
    # your stuff
Run Code Online (Sandbox Code Playgroud)

示例示例:

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

说明:

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