2012-01-09 45 views

回答

34

适用切片:

a[0:0] = k 

或手动做到这一点:

a = k + a 

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

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

哇!让我试着去琢磨一下。 – canadadry 2012-01-09 08:28:12

+1

我选择了切片解决方案。谢谢。 – canadadry 2012-01-10 02:20:42

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

使用连接列表:

a = k + a 
10

代替:

>>> a.insert(0, k) 

使用:

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

此更新 “到位” 的 “K” 列表,而不是创建副本。

列表串联(k + a)将创建一个副本。

切片选择(a [0:0] = K)也将更新 “就地” 但IMHO是更难阅读。

+0

这会在k的末尾附加一个a。 a会保持与以前一样。 – 0605002 2012-01-09 08:35:24

+1

@FlopCoder:很明显,他可以做出= K,重要的一点是了解有关就地和拷贝级联。 – 2012-01-09 08:42:29

+0

我宁愿改变'a'的位置。 – canadadry 2012-01-09 08:58:31

0
>>> a = ['foo.py'] 
>>> k = ['nice', '-n', '10'] 
>>> k.extend(a) 
>>> print k 
['nice', '-n', '10', 'foo.py'] 
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 
相关问题