2010-04-27 107 views
4

我有一個列表L的對象(因爲它值得這是在scons中)。我想創建兩個列表L1L2其中L1L與項目I1追加,並且L2L,並附有項目I2python:列表操作

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

我該如何在Python中做到這一點? (抱歉的初學者問題,我不使用的語言太多,只是針對scons)

回答

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

這可能是最簡單的方法。另一種選擇是複製的列表,然後追加:

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

不錯,謝謝! – 2010-04-27 17:29:08

3
L1=list(L) 

重複列表。我想你可以找出其餘的:)

2

你可以讓你列表

>>> 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模塊。這些都不是很糟糕,但我覺得前者有點神祕,後者有點愚蠢。