-3

我有一个列表列表,比如

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

4 回答 4

2

你有一个tuple,而不是一个列表,它们是不可变的。

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

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

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

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

因为逗号使右边的表达式成为一个元组。

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

outlist = list(outlist)

现在你可以随意打电话.append().insert()

于 2013-08-16T09:06:56.057 回答
1
AttributeError: 'tuple' object has no attribute ...

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

outlist = list(outlist)

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

(下一次,先花点时间阅读错误信息。)

于 2013-08-16T09:04:51.257 回答
0

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

outlist = [['d1', 'd2', 'd3'], ['d4', 'd5', 'd6']]
于 2013-08-16T09:04:48.477 回答
0

元组在 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']]
于 2013-08-16T09:04:51.693 回答