【问题标题】:Appending a modified list into a list将修改后的列表附加到列表中
【发布时间】:2017-10-24 12:59:06
【问题描述】:

我有一个列表a,我将它追加到列表l,然后我修改列表a,然后我再次将它追加到l。

我的代码是:

a = []
l = []
a.append(1)
l.append(a)

a.append(2)
l.append(a)

但是,l 现在是 = [[1,2],[1,2]],而我希望 l 成为 [[1], [1,2]]。

我通过如下修改代码解决了:

a = []
l = []
a.append(1)
l.append(list(a))

a.append(2)
l.append(list(a))

我的问题是:为什么将修改后的列表a 附加到已经包含a 的列表l 中的操作甚至会修改l 中的先前项目附加为a?

【问题讨论】:

    标签: python python-2.7 list append


    【解决方案1】:

    这是因为 Python 中的列表是可变对象。这意味着当您将列表分配给变量时,您正在传递对该列表的“引用”(如c 指针)。

    【讨论】:

    • 谢谢,那么对于在时间i+1 发生变化的列表,如何维护时间i 的值?我的解决方案对吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    • 1970-01-01
    • 2018-05-11
    • 2021-11-13
    • 1970-01-01
    相关资源
    最近更新 更多