如果我有大名单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/