python - 在 Python 中是 a, b, = 0, 0 在语义上等同于 a = b = 0
问题描述
与上述相同的问题:我很好奇a, b, = [], []
和之间有什么区别a = b = []
(如果有的话)
解决方案
不同之处在于:
l = [1, 2, 3]
a = b = l.copy()
仍然会创建a
和b
引用同一个对象,而这样做:
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 = []
使两个变量引用同一个对象。
推荐阅读
- docker - MediaWiki docker image - 如何正确设置
- python - Python使用列表中的项目迭代地创建过滤器表达式
- algorithm - 冒泡排序的时间复杂度
- c - 如何在 C 中打开相对于可执行文件位置的文件?
- php - jquery - JSON 对象,格式化为
- c++ - 临时对象上的运算符重载
- java - Android MapBox 反向地理编码
- c - rust 函数中没有 *char (c_char) 的问题,消息没有帮助
- reactjs - 中继:片段不能以未知类型的“查看器”为条件
- c - 使用 > 而不是 open 函数将 execlp 结果写入文件