将项添加或插入python中的列表列表

时间:2013-08-16 09:03:17

标签: python list

我有一个列表列表,比如

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

我想将['d7','d8','d9']追加到上面的列表中

outlist.append(['d7','d8','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','d8','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文件。我该怎么做?

4 个答案:

答案 0 :(得分:2)

你有一个元组,而不是一个列表,那些是不可变的。

如果要更改元组,请使用连接,添加另一个元素元组:

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

在这里,您将outlist重新绑定到一个新元组,该元组是原始值和长度为1的元组的串联。您甚至可以省略括号:

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

因为是逗号使得右边的表达式成为元组。

另一种方法是将您的元组转换为list()类型首先的列表:

outlist = list(outlist)

现在您可以随意拨打.append().insert()

答案 1 :(得分:1)

AttributeError: 'tuple' object has no attribute ...

列表,即tuple。元组是不可变的,因此没有办法做你想要的。首先将其转换为可变序列。

outlist = list(outlist)

或者首先将其创建为列表。

(下次,花一些时间首先阅读错误消息。)

答案 2 :(得分:0)

它不是列表列表,它是包含两个列表的元组。元组在Python中是不可变的。 将第一行更改为:

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

答案 3 :(得分:0)

Tuples在Python中是不可变的。如果您要添加项目,请将outlist转换为list

>>> 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']]