首页 > 解决方案 > 在 Python 中是 a, b, = 0, 0 在语义上等同于 a = b = 0

问题描述

与上述相同的问题:我很好奇a, b, = [], []和之间有什么区别a = b = [](如果有的话)

标签: pythonvariablesinitializationsemantics

解决方案


不同之处在于:

l = [1, 2, 3]
a = b = l.copy()

仍然会创建ab引用同一个对象,而这样做:

l = [1, 2, 3]
a, b = l.copy(), l.copy()

惯于。

例子:

>>> l = [1, 2, 3]
>>> a = b = l.copy()
>>> a
[1, 2, 3]
>>> b
[1, 2, 3]
>>> a[0] = 100
>>> a
[100, 2, 3]
>>> b
[100, 2, 3]
>>> 

>>> a, b = l.copy(), l.copy()
>>> a
[1, 2, 3]
>>> b
[1, 2, 3]
>>> a[0] = 100
>>> a
[100, 2, 3]
>>> b
[1, 2, 3]
>>> 

您的示例也可以证明这一点:

>>> a = b = []
>>> id(a)
1666229809344
>>> id(b)
1666229809344
>>> a, b, = [], []
>>> id(a)
1666230083712
>>> id(b)
1666230079296
>>> 

Usinga = b = []使两个变量引用同一个对象。


推荐阅读