【问题标题】:How to iterate `dict` with `enumerate` and unpack the index, key, and value along with iteration如何用 `enumerate` 迭代 `dict` 并将索引、键和值与迭代一起解包
【发布时间】:2017-02-12 21:53:28
【问题描述】:

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

类似:

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

我想遍历一个名为mydict 的字典中的键和值并计算它们,这样我就知道我什么时候在最后一个了。

【问题讨论】:

  • 你到底想对字典上的索引做什么?
  • 我正在将 dict 打印到文件中,所以我需要知道何时插入换行符。
  • 索引是否重要?在循环结束时,您知道您已完成 dict 并可以插入换行符。
  • 我在每个值之间插入一个逗号(它是一个 .csv),我需要知道何时插入逗号以及何时插入换行符。
  • 不要重新发明轮子,使用csv内置模块,它有dicts支持

标签: python dictionary


【解决方案1】:

您应该将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)), ...]

【讨论】:

    猜你喜欢
    • 2015-02-28
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    • 2018-01-14
    • 1970-01-01
    • 2015-05-15
    • 2015-10-24
    • 1970-01-01
    相关资源
    最近更新 更多