14

私はlist約40のエントリを持っています。また、リストの先頭(ID 0)にアイテムを追加したり、リストのlastエントリ(ID 40)を削除したりすることがよくあります。

どうすればこれを最善に行うことができますか?

5つのエントリの例:

[0] = "herp"
[1] = "derp"
[2] = "blah"
[3] = "what"
[4] = "da..."

最後に追加"wuggah"および削除した後は、次のようになります。

[0] = "wuggah"
[1] = "herp"
[2] = "derp"
[3] = "blah"
[4] = "what"

そして、すべてのエントリを次のIDに手動で次々に移動することになりたくありません。

4

5 に答える 5

12

insert()リストの先頭に項目を配置するために使用します。

myList.insert(0, "wuggah")

pop()リスト内の項目を削除して戻すために使用します。引数なしでポップすると、リストの最後の項目がポップされます

myList.pop() #removes and returns "da..."
于 2012-04-14T17:28:09.853 に答える
11

collections.dequeを使用します:

>>> import collections
>>> q = collections.deque(["herp", "derp", "blah", "what", "da.."])
>>> q.appendleft('wuggah')
>>> q.pop()
'da..'
>>> q
deque(['wuggah', 'herp', 'derp', 'blah', 'what'])
于 2012-04-14T17:25:47.693 に答える
10

使用するcollections.deque

In [21]: from collections import deque

In [22]: d = deque([], 3)   

In [24]: for c in '12345678':
   ....:     d.appendleft(c)
   ....:     print d
   ....:
deque(['1'], maxlen=3)
deque(['2', '1'], maxlen=3)
deque(['3', '2', '1'], maxlen=3)
deque(['4', '3', '2'], maxlen=3)
deque(['5', '4', '3'], maxlen=3)
deque(['6', '5', '4'], maxlen=3)
deque(['7', '6', '5'], maxlen=3)
deque(['8', '7', '6'], maxlen=3)
于 2012-04-14T17:30:05.790 に答える
1

これはワンライナーですが、おそらく他のいくつかほど効率的ではありません...

myList=["wuggah"] + myList[:-1]

また、それはあなたが望むものではないかもしれない新しいリストを作成することに注意してください...

于 2012-04-14T17:31:59.607 に答える