letters = ['a', 'b', 'c']
假设这是我的 list 。其中 for i, letter in enumerate(letters)
将是:
0, a
1, b
2, c
我怎样才能让它向后枚举,如:
2, a
1, b
0, c
最佳答案
这是一个很好的解决方案,并且可以完美运行:
items = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
for idx, item in enumerate(items, start=-len(items)):
print(f"reverse index for {item}: {abs(idx)}")
这是上述代码段的输出:
reverse index for a: 7
reverse index for b: 6
reverse index for c: 5
reverse index for d: 4
reverse index for e: 3
reverse index for f: 2
reverse index for g: 1
这是上面代码片段中发生的事情:
enumerate
的start
arg 被赋予负值。enumerate
总是向前迈出一步。- 最后,我们在
idx
上使用abs
来求绝对值,它总是正数。 - 如果您想从零开始编制索引,请使用
-len(items) + 1
修复逐一错误
关于python - 如何使用 enumerate 向后计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50382040/