python - 如何在 Python 中动态分配 pickle 名称?

标签 python pickle

我有一个循环,我想 pickle 所有输出。问题是我无法将我的变量分配为 pickle 名称。我可以用这个小例子来说明:

lst = [a,d,e,g,h,j]
for i in lst:
    pickle.dump(i,open('xx.p','wb'))

正如我之前所说,我想为列表中的每个 i 分配不同的名称。换句话说,我想将我的变量值分配为 pickle 名称。 ('a.p' -> 对于第一个,'d.p' -> 对于第二个等等)。

最佳答案

如果您使用两个列表,一个用于您的对象,一个用于您想要命名的对象,您可以轻松地做到这一点:

lst = [a,d,e,g,h,j]
nm_lst = ['a', 'b', 'd', 'e', 'h', 'j']
for i,nm in zip(lst,nm_lst):
    pickle.dump(i,open('{0}.p'.format(nm),'wb'))

或者你可以用字典来做到这一点(如评论中所建议的那样)

my_dict = {'a':a, 'b':b}
for key, val in my_dict.iteritems():
    pickle.dump(val,open('{0}.p'.format(key),'wb'))

(如果您使用的是 python3,iteritems -> items)

关于python - 如何在 Python 中动态分配 pickle 名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14923431/

相关文章:

python - 如何在 Python 中发送带有 pdf 附件的电子邮件?

python - 使用pickle记录用户的输入而不覆盖文件

python - pickle.dump 遇到 RuntimeError : maximum recursion depth exceeded in cmp

python - 在测试期间,Pickle 无法将对象存储在 django locmem 缓存中?

python - 在 tensorflow 中读取大型数据集

python - 当我与远程桌面断开连接时,PyKeyboard.tap_key() 不起作用

python - 通过分组计算数据帧中值的差异

python - python 有类似 C++ 的 using 关键字吗?

python - pickle 包装的部分功能

python - Unpickled tensorflow 模型无法做出预测