2012-02-24 5 views
0

私はこれに新しいです、私はこの質問が意味を成就することを願っています。 whileループを実行するたびにリストを追加するwhileループがあります。リストに最大数のインデックスを設定することができます。これにより、新しいエントリが追加されるたびに最も古いエントリが削除されます。リスト内のインデックスの数を制限する

答えて

4

いいえ、しかし、collections.dequeは正常に動作するはずです。

>>> d = collections.deque(maxlen=3) 
>>> d.append(1) 
>>> d.append(2) 
>>> d.append(3) 
>>> d.append(4) 
>>> d 
deque([2, 3, 4], maxlen=3) 
+0

'deque'は良い答えである、とあなたは私のupvoteを得たが、あなたの' deque'が大きい場合には、あなたがアクセスする必要があることに注意してくださいそれはちょっと遅くなることがあります(リンクされたリストであり、最初から必要な要素を見つけるために毎回横断する必要があります)。 – kindall

3

mod演算子を使用します。

for i in range(N): 

    L.insert(i%MAX_SIZE, object_to_be_added) 
0

どのようにポップを使用について(0)

d = range(10) 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 

def additem(list,n,max=10): 
    if len(list) + 1 > max: 
     list.pop(0) 
    list.append(n) 

additem(d,10) 
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
additem(d,11) 
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11] 
関連する問題