如果list1包含list2.如果list2发生变化,list1是否也会发生变化



这就是我想要创建的。

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

这就解释了你所看到的行为。list1list2存储在不同的内存位置,因为您还没有将列表本身等同起来。因此在CCD_ 3和CCD_。

注意:id()返回对象的内存地址。

相关内容

最新更新