【发布时间】:2021-04-14 16:26:24
【问题描述】:
我在 jupyter Notebook (Notebook1) 中有三个变量列表。
conso_emi = ['ENERGYSTARScore', 'SiteEUI(kBtu/sf)', 'SiteEUIWN(kBtu/sf)']
surf = ['PropertyGFAParking', 'LargestPropertyUseTypeGFA']
num_caract = ['NumberofBuildings', 'NumberofFloors', 'Age']
我想在另一个笔记本 (Notebook2) 中重复使用这些变量及其列表。这样做:
尝试 1:我在 Notebook1 中使用了pickler 将它们保存为列表列表: 在笔记本 1 中:
list_lists = [conso_emi,
surf,
num_caract,]
with open("Documents/OC/P4/var_funcs", 'wb') as fic:
mon_pickler = pickle.Pickler(fic)
mon_pickler.dump(list_lists)
在 Notebook2 中:
with open("Documents/OC/P4/var_funcs", 'rb') as fic:
mon_depickler = pickle.Unpickler(fic)
loaded = mon_depickler.load()
loaded
输出:
[['ENERGYSTARScore', 'SiteEUI(kBtu/sf)', 'SiteEUIWN(kBtu/sf)'],
['PropertyGFAParking', 'LargestPropertyUseTypeGFA'],
['NumberofBuildings', 'NumberofFloors', 'Age']]
这可行,但我丢失了 Notebook1 中的列表名称:conso_emi、surf、num_caracts
尝试 2:我没有保存列表列表,而是将三个列表保存为 dict,其中键是列表(变量)名称,值是列表本身在 Notebook1 中:
dic_lists = {'conso_emi':conso_emi,
'surf':surf,
'num_caract':num_caract}
with open("Documents/OC/P4/var_funcs", 'wb') as fic:
mon_pickler = pickle.Pickler(fic)
mon_pickler.dump(dic_lists)
在 Notebook2 中:
with open("C:/Users/VP/Documents/OC/P4/var_funcs", 'rb') as fic:
mon_depickler = pickle.Unpickler(fic)
loaded = mon_depickler.load()
loaded
输出:
{'conso_emi':['ENERGYSTARScore', 'SiteEUI(kBtu/sf)', 'SiteEUIWN(kBtu/sf)'],
'surf':['PropertyGFAParking', 'LargestPropertyUseTypeGFA'],
'num_caract':['NumberofBuildings', 'NumberofFloors', 'Age']}
我当时正在考虑从键和值重新创建变量,但我在之前的帖子中得到了解释,其他帖子表明这不是一个好习惯。 是否有任何适当且快速的方法可以在 Notebook2 中重用或重新创建这三个列表及其名称?
【问题讨论】: