Python 将列表修剪为最大元素数
我希望删除列表中最早添加的(即第一个)元素,以便此列表永远不会超过100个元素Python 将列表修剪为最大元素数,python,list,fifo,Python,List,Fifo,我希望删除列表中最早添加的(即第一个)元素,以便此列表永远不会超过100个元素 >>> from collections import deque >>> q = deque([1, 2, 3], maxlen=3) >>> q deque([1, 2, 3], maxlen=3) >>> q.append(4) >>> q deque([2, 3, 4], maxlen=3) 我想: L = [3279
>>> from collections import deque
>>> q = deque([1, 2, 3], maxlen=3)
>>> q
deque([1, 2, 3], maxlen=3)
>>> q.append(4)
>>> q
deque([2, 3, 4], maxlen=3)
我想:
L = [327983, 232382, 1, 2, 3, 4, 5, 6, 23]
if len(L) > 100:
for i in range(len(L)-100):
del L[0]
print L # [4, 5, 6, 23]
是否有一种不需要迭代的解决方案(或者更一般地说:一种更好的解决方案)用于修剪列表的开头,使其具有,您只需将一个片段分配回列表即可
L = L[-100:]
使用如何?如果指定maxlen
,则它存储的元素不会超过maxlen
>>> from collections import deque
>>> q = deque([1, 2, 3], maxlen=3)
>>> q
deque([1, 2, 3], maxlen=3)
>>> q.append(4)
>>> q
deque([2, 3, 4], maxlen=3)
当然,FIFO最适合这个(队列)。