说
list1=[4,8,12]
a,b,c=list1
输出为 a=4,b=8,c=12
。
我的困惑
教练告诉我们不是像 a
映射到 4
,b
映射到 8
和 c
到 12
。我没听懂他说的清楚(尽管我反复听了他多次)。他说对象是为 4
创建的,而 a
被映射到 4
。但这与我在下图中呈现的有什么区别?
最佳答案
您的图片具有误导性的是,它暗示 a
、b
和 c
引用了 list1
。但是,如果您更改 list1
,您会发现 a
、b
和 c
不受这种变化。
绘制图片的更好方法可能是将 4、8 和 12 与 list1
分开显示:
list1-->[ ][ ][ ]
| | |
V V V
4 8 12
^ ^ ^
| | |
a b c
所有变量都是相互独立的,尽管其中一些变量(例如 list1[0]
和 a
)当前指向相同的值。
换句话说:说 a = list1[0]
就是说“评估 list1[0]
并指定 a
引用无论那个值是现在”,这与说“使 a
成为 list1[0]
的别名”不同。
关于python - 解包集合时内存中会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70103531/