这不是我想要的枚举:

>>> seasons = ['Spring', 'summer', 'fall', 'winter']

>>> list(enumerate(seasons, start =2))

[(2, 'Spring'), (3, 'summer'), (4, 'fall'), (5, 'winter')]

这是我想要枚举的功能:
 >>> list(enumerate(seasons, start =2))
[(2, 'fall'), (3, 'winter')]

看到区别了吗?
第一个只是说,“好吧,如果你真的想让我把你的第 0 个元素称为 2”

第二个说,“我知道你只想在第二个索引处开始循环,就像 range(2, len(seasons)) 会做的那样”

有没有办法简单地用枚举来做到这一点?

最佳答案

为什么不只是切片前两个元素?

print(list(enumerate(seasons[2:], start=2)))

输出:
[(2, 'fall'), (3, 'winter')]

了解 enumerate 和 start 发生了什么。尝试迭代它以查看它输出的内容:
for i, v in enumerate(seasons, start=2):
    print(i, v)

正如您所看到的 i ,它只是随着迭代 seasons 列表而递增,它从 2 开始。但列表中的每个值实际上都是从列表的开头开始的。这进一步证明 start 与列表迭代的实际起点没有任何关系。

关于python - 跳过枚举中的前两个元素——python,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36479158/

10-11 23:01
查看更多