我有一个列表列表,比如
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文件。我该怎么做?
答案 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']]