ara*_*rax 1 python reference pickle
我在python中对同一个列表做了两个引用
x = y = []
Run Code Online (Sandbox Code Playgroud)
然后我将它们腌制成文本文件pickle.dump,但是当我再次加载它们时pickle.load,它们变成了两个具有不同内存地址的不同列表.在酸洗过程中,如何保持参考关系?
如果你腌制x和y作为两个单独的列表,他们将不会分享你的unpickle参考,无论他们是否事先做过; 腌制对象而不是引用:
>>> import pickle
>>> x = y = [1, 2]
>>> with open('test.txt', 'w') as f:
pickle.dump(x, f)
pickle.dump(y, f)
>>> with open('test.txt') as f:
x = pickle.load(f)
y = pickle.load(f)
>>> x == y
True
>>> x is y
False
Run Code Online (Sandbox Code Playgroud)
如果你想让两个名字在你load重新进入后分享引用,你可以使用pickle一个容器:
>>> x = y = [1, 2]
>>> with open('text.txt', 'w') as f:
pickle.dump([x, y], f)
>>> with open('text.txt') as f:
x, y = pickle.load(f)
>>> x == y
True
>>> x is y
True
Run Code Online (Sandbox Code Playgroud)
但是你可能只是挑选一个清单!
| 归档时间: |
|
| 查看次数: |
91 次 |
| 最近记录: |