我在程序中使用列表,但我不理解以下行为.我已经开始理解可变性以及它如何影响变量赋值,但我没有看到这里的问题:
class Test:
def __init__(self, list_n):
list_a = list_n[:]
list_b = list_n[:]
print(list_a is list_b) # Prints False
print(list_a is list_n) # Prints False
print(list_b is list_n) # Prints False
list_a[0][0] = 1
print(list_a) # Both of these print [[1,0,0][0,0,0][0,0,0]]
print(list_b)
def main():
list_n = [[0,0,0],[0,0,0],[0,0,0]]
test = Test(list_n)
if __name__ == '__main__': main()
Run Code Online (Sandbox Code Playgroud)
双方list_a并list_b似乎仍指向同一个列表,即使我想我采取了必要的措施,以防止这种情况发生.
python ×1