Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何按相反顺序循环列表并跳过最后一个元素_Python_Python 3.x_List_Indexing_Reverse - Fatal编程技术网

Python 如何按相反顺序循环列表并跳过最后一个元素

Python 如何按相反顺序循环列表并跳过最后一个元素,python,python-3.x,list,indexing,reverse,Python,Python 3.x,List,Indexing,Reverse,我知道我可以让for I in x[::-1]:以相反的顺序在列表中循环。但是如果我想跳过最后一个元素,然后从高到低遍历呢对于x中的i[-1:0:-1]不起作用 x = [1,2,3,4,5] => 4,3,2,1 # desired for i in x[-1:-1]: print(i) # it does not work 您需要从-2开始,因为-1从最后一个元素开始: for i in x[-2::-1]: print(i) 或者,您可以将反

我知道我可以让
for I in x[::-1]:
以相反的顺序在列表中循环。但是如果我想跳过最后一个元素,然后从高到低遍历呢<代码>对于x中的i[-1:0:-1]不起作用

x = [1,2,3,4,5]
=> 4,3,2,1         #  desired

for i in x[-1:-1]:
    print(i)

# it does not work

您需要从
-2
开始,因为
-1
从最后一个元素开始:

for i in x[-2::-1]:
    print(i)
或者,您可以将
反向
与列表切片一起使用:

for i in reversed(x[:-1]):
    print(i)

你可以像这样使用双层切片

for i in x[::-1][1:]:
    print(i)

移除回路后可以反转:

for i in x[:-1][::1]:
    print(i)

涉及列表切片的答案可能是最好的,但也可以使用enumerate

x = [1, 2, 3, 4, 5]
for index, value in enumerate(reversed(x)):
    val = value-1
    if val:
        print(val)

同样,从“大O”的意义上来说,切片答案更好,但是看到一些方法来做一件事并没有什么坏处

您可以使用以下命令:
x[-2::-1]
快速问题来使用简短的if-elif语句,而不使用else?