我正在使用Python 3.4.1。
对于单个列表
然而,当我定义一个列表的列表(实际上是矩阵)
我检查了它们的地址,它们是不同的。
有人能告诉我为什么吗?
注:我所做的是
对于单个列表
a=[1,2]
,如果我复制它,b = a.copy()
,当我更改b
中的项目时,它不会更改a
中的项目。然而,当我定义一个列表的列表(实际上是矩阵)
a = [[1,2],[3,4]]
,当我分配b = a.copy()
时,我对列表b
做的任何事情实际上都会影响a
。我检查了它们的地址,它们是不同的。
有人能告诉我为什么吗?
注:我所做的是
b [0] [0] = x
,并且a中的项也发生了更改。
__copy__
和__deepcopy__
方法的对象上使用copy
模块。有关详细信息,请参阅原始答案中链接的文档。不幸的是,在Python中没有像C++这样的“预定义”复制操作(通常这是一件好事,因为C++的自动生成的复制构造函数对于任何非平凡类都经常是错误的)。 - aruisdante