理解Python变量赋值
如果我执行此代码:理解Python变量赋值,python,variables,Python,Variables,如果我执行此代码: a = [1,2,3] b = a b.remove(2) print(a,b) 我希望看到的是: [1,2,3] [1,3] 但这是我真正得到的: [1,3] [1,3] 为什么调用b.remove(2)也会影响a? 如果我想更改b,同时在a中保留原始内容的副本,该怎么办?当您执行b=a时,您只需创建对同一列表的另一个引用。因此,对该列表的任何修改都将影响a和b。这样做b.remove(2)将影响您拥有的单个列表 如果要获得预期结果,可以创建列表的副本: b = a[
a = [1,2,3]
b = a
b.remove(2)
print(a,b)
我希望看到的是:
[1,2,3] [1,3]
但这是我真正得到的:
[1,3] [1,3]
为什么调用b.remove(2)
也会影响a
?
如果我想更改
b
,同时在a
中保留原始内容的副本,该怎么办?当您执行b=a
时,您只需创建对同一列表的另一个引用。因此,对该列表的任何修改都将影响a
和b
。这样做b.remove(2)
将影响您拥有的单个列表
如果要获得预期结果,可以创建列表的副本:
b = a[:]
这样,您可以创建列表的副本,并且可以修改其中一个而不更改另一个
>>> a = [1,2,3]
>>> b = a[:]
>>> b.remove(2)
>>> print a,b
[1, 2, 3] [1, 3]
当您执行
b=a
时,只需创建对同一列表的另一个引用。因此,对该列表的任何修改都将影响a
和b
。这样做b.remove(2)
将影响您拥有的单个列表
如果要获得预期结果,可以创建列表的副本:
b = a[:]
这样,您可以创建列表的副本,并且可以修改其中一个而不更改另一个
>>> a = [1,2,3]
>>> b = a[:]
>>> b.remove(2)
>>> print a,b
[1, 2, 3] [1, 3]
a
和b
是同一列表的两个名称,因此如果您通过一个名称更改列表,则可以通过另一个名称查看更改。如果希望它们是不同的列表,请复制:
b = a[:]
或
a
和b
是同一列表的两个名称,因此如果您通过一个名称更改列表,则可以通过另一个名称查看更改。如果希望它们是不同的列表,请复制:
b = a[:]
或
您可能会喜欢以下内容:您可能会喜欢以下内容: