直接赋值:其实就是对象的引用(别名)。
a = b = {}
b.setdefault('1', {}) # 等同于 b['1'] = {}
b = {}
# b = b['1']
b.setdefault('3', {})
print(a)
打印结果: {'1': {}}
a = b = {}
b.setdefault('1', {}) # 等同于 b['1'] = {}
# b = {}
b = b['1']
b.setdefault('3', {})
print(a)
打印结果:{'1': {'3': {}}}
两张图, 第3行, 字典b 赋值方式不同, 打印字典a 结果不同;
图一, b = {} , 重新分配内存空间;
图2 , b = b['1'] , 相当于把第2行 { } 空字典的引用指向了 b
参考:Python 直接赋值、浅拷贝和深度拷贝解析 | 菜鸟教程



