我想在python中列出一个列表。我正在初始化这个列表,如:
n = 3
adj = [[]]*n
所以现在当我print adj
时,我得到了:
[[], [], []]
......没关系。
现在,我想将值附加到特定列表(一个特定索引)。我这样做了:
adj[0].append(1)
因此,我的预期输出是:
[[1], [], []]
然而输出是:
[[1], [1], [1]]
我似乎无法理解为什么会这样。可能我不理解Python的列表是如何工作的,或者是在犯一个完全愚蠢的错误。任何帮助将不胜感激。
此外,我非常感谢有关如何获得所需输出的建议。
答案 0 :(得分:2)
Python中需要此行为。在此上下文中使用*运算符可以为UIKit
对象创建引用,这意味着当您修改一个这样的对象时(就像使用list()
操作一样),您可以修改所有引用到该对象。
为了得到你想要的输出,我建议使用一个循环来创建彼此不是别名的列表:
append()