Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.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_List_Reverse - Fatal编程技术网

Python 不使用反转命令反转列表

Python 不使用反转命令反转列表,python,list,reverse,Python,List,Reverse,我想在Python上反转列表,而不使用reversed命令。有什么想法吗? 查询的目的是找到另一种方法来反转列表,而不使用任何“standar”Python命令,如reverse。提前感谢 list = [] x = 1 #Import 20 random numbers for i in range (0,20): list.append (x) print (list) for i in range (20,0,-1): # <-- I know, this is wro

我想在Python上反转列表,而不使用
reversed
命令。有什么想法吗? 查询的目的是找到另一种方法来反转列表,而不使用任何“standar”Python命令,如reverse。提前感谢

list = []
x = 1

#Import 20 random numbers
for i in range (0,20):
    list.append (x)

print (list)

for i in range (20,0,-1): # <-- I know, this is wrong. I used it as an example
    print (list[i])
您可以简单地使用向后逐步浏览列表:

print(list[::-1])
演示:

事实上,如果您使用测试,您将看到它比使用
反向
快得多:

>>> from timeit import timeit
>>> lst = list(range(1000))
>>> timeit('list(reversed(lst))', 'from __main__ import lst')
18.91587534169846
>>> timeit('lst[::-1]', 'from __main__ import lst')
9.677450346342901
>>>

它也减少了打字次数。:)

此外,除了
列表
,您还应该为列表选择一个不同的名称。目前,您正在使内置的
列表变得黯然失色。是否有任何方法可以使用for来实现这一点?我想老师想用这种方式做。也就是说,不用倒置,:-1等等。顺便说一下,谢谢你的回答!嗯,我想你可以对范围内的I(len(list)-1,-1,-1)执行
:打印(list[I])
。然而,请注意,这是一种不寻常的、略显不和谐的做事方式。使用
[::-1]
反转
是大多数Python程序员做你想做的事情的方式。它是有效的!查询的目的是找到另一种方法来反转列表,而不使用任何“standar”Python命令,如reverse。再次感谢你!
>>> lst = [1, 2, 3]
>>> lst[::-1]
[3, 2, 1]
>>>
>>> from timeit import timeit
>>> lst = list(range(1000))
>>> timeit('list(reversed(lst))', 'from __main__ import lst')
18.91587534169846
>>> timeit('lst[::-1]', 'from __main__ import lst')
9.677450346342901
>>>