我正在寻找一种简单的方法来附加到修复大小的列表中。
如果列表的最大值为n
,并且此列表中还有另一个项目,则list
的第一项将被删除。
有一种方法,但我认为它没有效率,而且相当矫枉过正。我该怎么做?
class fix_sized_list():
def __init__(self,_max):
self.max = _max
self._list = []
def add(self,item):
print len(self._list)
if len(self._list)>=self.max:
self._list.pop(0)
self._list.append(item)
else:
self._list.append(item)
c = fix_sized_list(8)
for x in range(50):
c.add(x)
print c._list
输出:
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2, 3]
[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4, 5]
[0, 1, 2, 3, 4, 5, 6]
[0, 1, 2, 3, 4, 5, 6, 7]
[1, 2, 3, 4, 5, 6, 7, 8]
[2, 3, 4, 5, 6, 7, 8, 9]