关于 python 的内存机制
先看一段代码
L = [1,2,3]
dic_ = {}
L2 = []
for i in L:
dic_['sn'] = i
L2.append(dic_)
print(L2)
输出
[{'sn': 3}, {'sn': 3}, {'sn': 3}]
为什么这样?因为这个 dic_ 自始至终 都只用了一块内存来存储这个值,而对 dic_ 这个存储的变量进行操作时,必然会影响到 L2 里面的值,就像这样
>>> a = [1,2]
>>> b = a
>>> b
[1, 2]
>>> a.pop()
2
>>> a
[1]
>>> b
[1]
>>>
a 和 b 共用一块内存,所以对 a 变量进行操作就影响到了 b,一个比喻说的很好:python 中的变量赋值相当于向内存上贴标签
本文来自博客园,作者:Hello_wshuo,转载请注明原文链接:https://www.cnblogs.com/Hellowshuo/p/15622278.html