在Python中以相反的顺序遍历列表

新手上路,请多包涵

如何在 Python 中以相反的顺序遍历列表?所以我可以从 collection[len(collection)-1] 开始并以 collection[0] 结束。

我还希望能够访问循环索引。

原文由 Joan Venge 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 580
2 个回答

使用内置的 reversed() 函数:

 >>> a = ["foo", "bar", "baz"]
>>> for i in reversed(a):
...     print(i)
...
baz
bar
foo

要访问原始索引,请在列表中使用 enumerate() ,然后将其传递给 reversed()

 >>> for i, e in reversed(list(enumerate(a))):
...     print(i, e)
...
2 baz
1 bar
0 foo

由于 enumerate() 返回一个生成器,并且生成器无法反转,因此您需要先将其转换为 list

原文由 Greg Hewgill 发布,翻译遵循 CC BY-SA 4.0 许可协议

你可以做:

 for item in my_list[::-1]:
    print item

(或者你想在 for 循环中做的任何事情。)

[::-1] 切片反转 for 循环中的列表(但实际上不会“永久”修改您的列表)。

原文由 mipadi 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题