在Python3中尝试按值传递

在Python3中尝试按值传递,python,python-3.x,list,copy,Python,Python 3.x,List,Copy,在使用python 3.7编程时,我遇到了一个非常奇怪的问题: A = [[1,2],[0,3]] B = A[:][:] # creates a copy of A to work with, without modify A del B[0] 当B变成[[0,3]]而A仍然是[[1,2],[0,3]]时,这就起作用了。 但是,如果我尝试这样做: A = [[1,2],[0,3]] B = A[:][:] # creates a copy of A to work with, w

在使用python 3.7编程时,我遇到了一个非常奇怪的问题:

A = [[1,2],[0,3]]
B = A[:][:]   # creates a copy of A to work with, without modify A
del B[0]
当B变成[[0,3]]而A仍然是[[1,2],[0,3]]时,这就起作用了。 但是,如果我尝试这样做:

A = [[1,2],[0,3]]
B = A[:][:]     # creates a copy of A to work with, without modify A
del B[0][1]
B变成
[[1],[0,3]]
,但A也变成
[[1],[0,3]]

我不能理解这种行为,你能解释一下那里发生了什么吗?

B=A[:][:]
B=A[:]
是一样的。要复制多个级别的列表,请使用!