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

  • 问题:
  • 所以我可以从len(collection)开始,到collection[0]结束

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

  • 答案:
  • 使用内置的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()返回一个生成器,并且生成器不能反转,因此需要首先将其转换为列表