如何在python列表中循环?
例如
环:
L = [1,2,3]
for item in L
print item #-->1,2,3
Run Code Online (Sandbox Code Playgroud)
循环:
L = [1,2,3]
for ???
print item #-->3,2,1
Run Code Online (Sandbox Code Playgroud)
谢谢
sen*_*rle 16
for i in reversed([1, 2, 3]):
print i
Run Code Online (Sandbox Code Playgroud)
切片列表(ls[::-1])非常适合制作反向副本,但在我的机器上,迭代速度较慢,即使列表已经在内存中:
>>> def sliceit(x):
... l = range(x)
... for i in l[::-1]:
... i
...
>>> def reverseit(x):
... l = range(x)
... for i in reversed(l):
... i
...
>>> %timeit sliceit(100)
100000 loops, best of 3: 4.04 µs per loop
>>> %timeit reverseit(100)
100000 loops, best of 3: 3.79 µs per loop
>>> %timeit sliceit(1000)
10000 loops, best of 3: 34.9 µs per loop
>>> %timeit reverseit(1000)
10000 loops, best of 3: 32.5 µs per loop
>>> %timeit sliceit(10000)
1000 loops, best of 3: 364 µs per loop
>>> %timeit reverseit(10000)
1000 loops, best of 3: 331 µs per loop
Run Code Online (Sandbox Code Playgroud)
正如在这些情况下经常如此,差异可以忽略不计.对于不同版本的Python,可能会有所不同(我在上面的测试中使用了Python 2.7).使用的真正好处reversed是可读性 - 在大多数情况下,即使它花费几个额外的微秒也是优选的.
颠倒顺序.
L = [1,2,3]
for item in reversed(L)
print item #-->3,2,1
Run Code Online (Sandbox Code Playgroud)
另一种方案:
for item in L[::-1]:
print item
Run Code Online (Sandbox Code Playgroud)