我想在不使用reversed
命令的情况下反转Python上的列表。有任何想法吗?
查询是找到另一种方法来反转列表而不使用任何"标准" Python命令就像反向一样。提前谢谢!
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])
解决方案:
list = []
x = 1
#Import 20 random numbers
for i in range (0,20):
list.append (x)
print (list)
for i in range(len(list) - 1, -1, -1):
print(list[i])
答案 0 :(得分:1)
您只需使用Python's slice notation向后浏览列表:
print(list[::-1])
演示:
>>> lst = [1, 2, 3]
>>> lst[::-1]
[3, 2, 1]
>>>
事实上,如果您使用timeit.timeit
进行测试,您会发现它比使用reversed
快得多:
>>> 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
>>>
打字也少。 :)