添加条目列表并删除Python中的第一个条目

时间:2012-04-14 17:22:38

标签: python list append

我有大约40个条目的list。我经常想要将一个项目附加到列表的开头(ID为0),并希望delete列表中的last条目(ID为40)。

我最好怎么做?

like:(包含5个条目的示例)

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

添加“wuggah”并删除最后它应该是:

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

或附加一个并先删除。

我不希望最终手动将所有条目一个接一个地移动到下一个id。

5 个答案:

答案 0 :(得分:11)

使用insert()将项目放在列表的开头:

myList.insert(0, "wuggah")

使用pop()删除并返回列表中的项目。弹出没有参数弹出列表中的最后一项

myList.pop() #removes and returns "da..."

答案 1 :(得分:7)

使用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'])

答案 2 :(得分:7)

使用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)

答案 3 :(得分:1)

这是一个单行,但它可能没有其他一些效率高......

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

另请注意,它会创建一个新列表,可能不是您想要的...

答案 4 :(得分:1)

另一种方法

L = ["herp", "derp", "blah", "what", "da..."]

L[:0]= ["wuggah"]
L.pop()