Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将列表修剪为最大元素数_Python_List_Fifo - Fatal编程技术网

Python 将列表修剪为最大元素数

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

我希望删除列表中最早添加的(即第一个)元素,以便此列表永远不会超过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 = [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最适合这个(队列)。