2013-08-16 113 views
-3

我有一個列表的列表,像附加或插入一個項目列表的列表在python

outlist = (['d1', 'd2', 'd3'], ['d4', 'd5', 'd6']) 

欲[「D7」,「D8」,「D9」]追加到上述名單

outlist.append([ 'D7', 'A8', 'D9'])給了我錯誤

Traceback (most recent call last): 
    File "<pyshell#42>", line 1, in <module> 
    outlist.append(['d7','d8','d9']) 
AttributeError: 'tuple' object has no attribute 'append' 

outlist.insert([ 'D7', 'A8', 'D9'] )也給我一個錯誤

Traceback (most recent call last): 
    File "<pyshell#44>", line 1, in <module> 
    outlist.insert(['d7','d8','d9']) 
AttributeError: 'tuple' object has no attribute 'insert' 

需要幫助解決此問題。我也想將'outlist'寫入一個csv文件。我怎麼做?

+2

你有什麼不是「列表清單」,它是列表的「元組」。如錯誤所示。所以你需要使用一個列表,而不是一個元組,如果你想追加它。 – mavili

回答

0

這不是一個列表的列表,它是一個包含兩個列表的元組。元組在Python中是不可變的。 更改第一行:

outlist = [['d1', 'd2', 'd3'], ['d4', 'd5', 'd6']] 
1
AttributeError: 'tuple' object has no attribute ... 

也就是說名單,這是一個tuple。元組是不可變的,因此沒有辦法做到你想要的。首先將其轉換爲可變序列。

outlist = list(outlist) 

或者將它創建爲一個列表。

(而接下來的時間,花幾分鐘閱讀錯誤信息第一。)

0

Tuples在Python是不可改變的。

>>> outlist = (['d1', 'd2', 'd3'], ['d4', 'd5', 'd6']) 
>>> outlist = list(outlist) 
>>> outlist.append(['d7', 'd8', 'd9']) 
>>> outlist 
[['d1', 'd2', 'd3'], ['d4', 'd5', 'd6'], ['d7', 'd8', 'd9']] 
2

你有一個元組,而不是一個列表,這些都是不可改變的:如果你想添加一個項目轉換outlistlist

使用級聯,如果你想改變的元組,加入的元素另一元組:

outlist += (['d7','d8','d9'],) 

在這裏,你重新綁定outlist到一個新的記錄,它是原始值的級聯加長度的元組一。甚至可以省略括號:

outlist += ['d7','d8','d9'], 

因爲它是使右表達式成爲元組的逗號。

另一種方法是把你的元組到一個列表與list()第一

outlist = list(outlist) 

,現在你可以調用隨意.append().insert()

相關問題