python:列表操作

问题描述:

我有一个列表L的对象(因为它值得这是在scons中)。我想创建两个列表L1L2其中L1L与项目I1追加,并且L2L,并附有项目I2python:列表操作

我会使用append但修改原始列表。

我该如何在Python中做到这一点? (抱歉的初学者问题,我不使用的语言太多,只是针对scons)

L1 = L + [i1] 
L2 = L + [i2] 

这可能是最简单的方法。另一种选择是复制的列表,然后追加:

L1 = L[:]  #make a copy of L 
L1.append(i1) 
+0

不错,谢谢! – 2010-04-27 17:29:08

L1=list(L) 

重复列表。我想你可以找出其余的:)

你可以让你列表

>>> x = [1, 2, 3] 
>>> y = list(x) 
>>> y.append(4) 
>>> y 
[1, 2, 3, 4] 
>>> z = list(x) 
>>> z.append(5) 
>>> z 
[1, 2, 3, 5] 

或使用串联的副本,这将使一个新的列表

>>> x = [1, 2, 3] 
>>> y = x + [4] 
>>> z = x + [5] 
>>> y 
[1, 2, 3, 4] 
>>> z 
[1, 2, 3, 5] 

前者可能更具惯用/普通,但后者在这种情况下工作得很好。有些人也使用分片复制(x[:]创建了一个新列表,其中包含原始列表x的所有元素)或copy模块。这些都不是很糟糕,但我觉得前者有点神秘,后者有点愚蠢。