在Python中使用 enumerate 以相反的顺序输出枚举

要以相反的顺序使用 enumerate 函数:

  1. 迭代时使用 enumerate() 函数访问索引。
  2. 将枚举对象转换为列表并反转列表。
  3. 使用 for 循环以相反的顺序遍历列表。
my_list = ['a', 'b', 'c', 'd', 'e']

for index, item in reversed(list(enumerate(my_list))):
    print(index, item)  # 👉️ 4 e 3 d 2 c 1 b 0 a

# ------------------------------

for item in reversed(my_list):
    print(item)  # 👉️ e d c b a

在Python中使用 enumerate 以相反的顺序输出枚举

我们使用 reversed() 函数反向迭代枚举对象。

enumerate() 函数接受一个可迭代对象并返回一个包含元组的枚举对象,其中第一个元素是索引,第二个是项目。

my_list = ['a', 'b', 'c', 'd', 'e']

for index, item in enumerate(my_list):
    print(index, item)  # 👉️ 0 a, 1 b, 2 c, 3 d, 4 e

我们使用 list() 类将枚举对象转换为列表,因为 reversed() 函数采用的第一个参数是一个序列。

my_list = ['a', 'b', 'c', 'd', 'e']

# [(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e')]
print(list(enumerate(my_list)))

# [(4, 'e'), (3, 'd'), (2, 'c'), (1, 'b'), (0, 'a')]
print(list(reversed(list(enumerate(my_list)))))

最后一步是使用 for 循环遍历元组列表。

my_list = ['a', 'b', 'c', 'd', 'e']

for index, item in reversed(list(enumerate(my_list))):
    print(index, item)  # 👉️ 4 e, 3 d, 2 c, 1 b, 0 a

每个元组中的第一个元素是索引,第二个元素是对应的值。

如果我们只需要以相反的顺序遍历列表并且不需要访问索引,请直接使用 reversed() 函数。

my_list = ['a', 'b', 'c', 'd', 'e']


for item in reversed(my_list):
    print(item)  # 👉️ e, d, c, b, a

reversed() 函数接受一个迭代器,将其反转并返回结果。

my_list = ['a', 'b', 'c', 'd', 'e']

# ['e', 'd', 'c', 'b', 'a']
print(list(reversed(my_list)))

reversed() 函数返回一个迭代器对象。 如果需要将对象转换为列表,可以将其传递给 list() 类。

但是,如果我们只需要以相反的顺序遍历列表,则可以直接进行。