如果我有大名单A = [1,2,3,4,5,6,7,8,9,10]
我有3个元素的子列表,例如

B = [1,2,3]

我想根据A列表向前滑动1步,使B变为[2,3,4]-有没有一种流畅的方法?还是我只需要弹出B的第一个元素,然后从A附加适当的元素?

谢谢!

编辑:我的答案
B = A [i:i + 3]
如果要按“ i”步骤向前看,可以在哪里增加“ i”。

最佳答案

您可以将A设置为deque

from collections import deque
A = deque(range(1,11))


并且B可以是A的前三个元素的视图。当您需要“滑动”时,向左旋​​转A

A
Out[71]: deque([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

from itertools import islice #deques do not support slicing notation
B = list(islice(A,3))

B
Out[74]: [1, 2, 3]

A.rotate(-1)
B = list(islice(A,3))

B
Out[77]: [2, 3, 4]

关于python - 在列表中将头尾移动1步,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20085906/

10-12 17:12