在没有反向命令的情况下反转列表

时间:2014-11-26 16:31:29

标签: python list reverse

我想在不使用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])

1 个答案:

答案 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
>>>

打字也少。 :)