可能的重复:
Python 中的“Least Astonishment”:可变默认参数
Python - 使用乘法运算符在列表中创建对象的副本
当我追加到另一个列表中的列表时,Python 的行为出乎意料。这是一个例子:
>>> _list = [[]] * 7
>>> _list
[[], [], [], [], [], [], []]
>>> _list[0].append("value")
我的期望:
>>> _list
[['value'], [], [], [], [], [], []]
我得到什么:
>>> _list
[['value'], ['value'], ['value'], ['value'], ['value'], ['value'], ['value']]
为什么是这样?我怎样才能绕过它?