2013-08-16 88 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()

相关问题