如何在另一个列表的前面插入列表?

时间:2012-01-09 08:24:48

标签: python

>>> a = ['foo.py']
>>> k = ['nice', '-n', '10'] 
>>> a.insert(0, k)
>>> a
[['nice', '-n', '10'], 'foo.py']

我想列出kfoo.py处于同一级别,而不是子列表。

6 个答案:

答案 0 :(得分:39)

应用切片:

a[0:0] = k

或者手动完成:

a = k + a

第一种方法在任何地方插入都保持不变,即a[n:n] = k 将k插入位置n,但第二种方法将不相同,即

a = a[:n] + k + a[n:]

答案 1 :(得分:13)

而不是:

>>> a.insert(0, k)

使用:

>>> k.extend(a)
>>> k
['nice', '-n', '10', 'foo.py']

这将“就地”更新“k”列表,而不是创建副本。

列表连接(k + a)将创建一个副本。

切片选项(a [0:0] = k)也会“就地”更新,但恕我直言更难阅读。

答案 2 :(得分:5)

使用列表连接:

a = k + a

答案 3 :(得分:2)

>>> k + a
['nice', '-n', '10', 'foo.py']

答案 4 :(得分:0)

>>> a = ['foo.py']
>>> k = ['nice', '-n', '10']
>>> k.extend(a)
>>> print k
['nice', '-n', '10', 'foo.py']

答案 5 :(得分:0)

    list1=list(xrange(1,11)) # numbers 1 to 10 in list
    list1[:0]=[0,0,0] # adds triple 0s to front of list
    list1+=[11,12,13] #adds [11,12,13] to the end of list
    print list1