如何在 Python 中以相反顺序遍历列表(仅限索引样式:'... in range(...)')

men*_*xyz 3 python loops numpy

我是 Python 新手,所以我仍然习惯使用这种语言进行循环。例如,我有以下代码(列表中的元素类型是数组)

my_list = [array0, array1, array2, array3]
temp = my_list[-1]
for k in range(len(my_list) - 1, 0):
    temp = temp + my_list[k - 1]
return temp
Run Code Online (Sandbox Code Playgroud)

我想从列表末尾遍历列表并在第二个元素(k= 1)处停止,但看起来永远不会进入 for 循环,它只会返回循环外的初始温度。我不知道为什么。有人可以帮忙吗?谢谢。

jaz*_*azz 5

避免使用 range 循环,一般建议仅使用 for 循环进行迭代。

如果您想反转列表,请使用reversed(my_list)

所以在你的情况下,解决方案是:

my_list = reversed([array0,array1,array2,array3])
Run Code Online (Sandbox Code Playgroud)

这给了你[array3, array2, ...]

要从反转列表中省略最后一个数组,请使用切片:

my_list = reversed([array0,array1,array2,array3])[:-1]
Run Code Online (Sandbox Code Playgroud)

所以你的代码变成了单行代码:-)