letters = ['a', 'b', 'c']
Run Code Online (Sandbox Code Playgroud)
假设这是我的清单.哪里for i, letter in enumerate(letters)会:
0, a
1, b
2, c
Run Code Online (Sandbox Code Playgroud)
我怎样才能使它向后枚举,如:
2, a
1, b
0, c
Run Code Online (Sandbox Code Playgroud)
rud*_*vdr 15
这是一个很好的解决方案并且可以完美运行:
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)}")
Run Code Online (Sandbox Code Playgroud)
这是上述代码段的输出:
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
Run Code Online (Sandbox Code Playgroud)
这是上面片段中发生的事情:
enumerate的startarg 被赋予一个负值。enumerate 总是向前迈出一步。absonidx来找到绝对值,它总是正的。-len(items) + 1来修复一对一错误小智 4
尝试这个:
letters = ['a', 'b', 'c']
for i, letter in reversed(list(enumerate(reversed(letters)))):
print(i, letter)
Run Code Online (Sandbox Code Playgroud)
输出:
2 a
1 b
0 c
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2124 次 |
| 最近记录: |