为什么这不适用于Python?
>>> print [0,1,0,1,1,0,1,1,1,0,1,1,1,1,0].reverse()
None
Run Code Online (Sandbox Code Playgroud)
我希望以相反的顺序取回列表.
tas*_*oor 52
>>> a = [3, 4, 5]
>>> print a.reverse()
None
>>> a
[5, 4, 3]
>>>
Run Code Online (Sandbox Code Playgroud)
这是因为reverse()不返回列表,而是反转列表.所以的返回值a.reverse()就是None它显示在print.
Ber*_*ron 23
如果您希望它以相反的顺序返回一个新列表,您可以使用 [::-1]
>>> [0,1,0,1,1,0,1,1,1,0,1,1,1,1,0][::-1]
[0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0]
Run Code Online (Sandbox Code Playgroud)
由于我仍然试图理解downvote,如果原始列表变得无关紧要,使用@ taskinoor的答案,它会更快.
但是,如果您要求保持原始列表不变,我建议您使用[::-1].
from time import time
lst = [0,1,0,1,1,0,1,1,1,0,1,1,1,1,0]
s = time()
for i in xrange(5000000):
a = lst[::-1] # creates a reversed list
print time() -s
s = time()
for i in xrange(5000000):
b = lst[:] # copies the list
b.reverse() # reverses it
print time() -s
Run Code Online (Sandbox Code Playgroud)
输出
2.44950699806
3.02573299408
Run Code Online (Sandbox Code Playgroud)
Rom*_*huk 22
如果要反转列表副本,请使用reversed:
>>> list(reversed([1,2,3,4]))
[4, 3, 2, 1]
Run Code Online (Sandbox Code Playgroud)
ps reversed返回迭代器而不是列表的副本(如同[][::1]).所以它适合你需要迭代反向迭代.list()此处的附加仅用于演示.