这就是我想要创建的。
list2 =[1,2,3];
list1= [list2[0],list2[1]];
list2[0]=2;
print(list1);
我希望输出是[2,2]而不是[1,2]
Python中的整数是不可变的。这是你在列表中期望的行为,但这是不可能的。考虑这个例子:
x = 0
y = 0
print(id(x), id(y))
y = 1
print(id(y))
输出:
94583099374048 94583099374048
94583099374080
而列表是可变的:
a_list = ["a",
"b",
"c",
"d",
"e",
"f"
]
b_list = a_list
print("a list id before update", id(a_list))
print("b list id before update", id(b_list))
a_list += ["g"]
print("a list after update", a_list)
print("b list after update", b_list)
print("a list id after update", id(a_list))
print("b list id after update", id(b_list,))
输出:
a list id before update 139734649089472
b list id before update 139734649089472
a list after update ['a', 'b', 'c', 'd', 'e', 'f', 'g']
b list after update ['a', 'b', 'c', 'd', 'e', 'f', 'g']
a list id after update 139734649089472
b list id after update 139734649089472
这就解释了你所看到的行为。list1
和list2
存储在不同的内存位置,因为您还没有将列表本身等同起来。因此在CCD_ 3和CCD_。
注意:id()
返回对象的内存地址。