我设计了一个将列表作为参数并返回另一个列表的函数。通过迭代列表追加项目
def function(list):
A = []
B = []
for num in list:
A.append(num)
B.append(A)
return B
在这个函数中,我认为函数会根据A的当前状态将A附加到A.在这个假设下工作。我调用的函数
>>> test([1,2,3,4,5])
预期输出为
[[1], [1, 2], [1, 2, 3], [1, 2, 3, 4], [1, 2, 3, 4, 5]]
但是,我得到的是
[[1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]]
为什么是这样的结果呢?围绕这个问题有什么解决方案吗?
你正在做的是按引用传递,而不是A的价值内容的地址的时刻。因此最后它显示了A的重复内容,而不是显示存储时的值。 基本pythonic的方式来做到这一点。正如@Paul Lo建议/回答。 并没有这不是一个问题,但一个基本的python“属性” – smitkpatel 2015-03-03 06:25:22