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 - 从 Seaborn 热图格式中排除列,但保留在 map 中

python - StatsModels 的置信区间和预测区间

python - python中如何获取当前.py文件的上级目录路径?

python - Pyspark 中的 Pickle 错误

python - 如何 pickle __main__ 中定义的函数/类(python)

python - 如何让我的用户将歌曲添加到 django 中的专辑中

python - Bokeh ,只能通过回调更新列一次

python - 使用 python 和多处理压缩输出

python - 如何解压pkl文件?

python - 如何使用 requirements.txt 或类似的 pickle 对象