Python: Why does this list of lists contains references instead of copies?
本问题已经有最佳答案,请猛点这里访问。
我有以下的python2程序:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | A=[] for i in range(2): A.append(list(["hello"])) print"A is",A F=[] for i in range(2): F.append(list(A)) print"F[0] is", F[0] print"F[1] is", F[1] F[0][0].append("goodbye") print"F[0][0] is", F[0][0] print"F[1][0] is", F[1][0] |
当我运行它时,我得到输出:
1 2 3 4 5 | A is [['hello'], ['hello']] F[0] is [['hello'], ['hello']] F[1] is [['hello'], ['hello']] F[0][0] is ['hello', 'goodbye'] F[1][0] is ['hello', 'goodbye'] |
我原以为
我在这里误解了什么?
编辑:如果我写
列表(A)和[:]对可变对象集合有限制,因为内部对象保持其引用不变。在这种情况下,您应该使用
特别是,应该是