Python 不使用反转命令反转列表
我想在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
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
>>>