从 Notebook 中选择列表及其名称并在 Notebook2 中取消选择它们
Pickling lists with their names from Notebook and Unpickling them in Notebook2
我在 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)
在笔记本 2 中:
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:我没有保存列表的列表,而是将三个列表保存为字典,其中键是列表(变量)名称,值是列表本身在 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)
在笔记本 2 中:
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']}
当时我正在考虑从键和值中重新创建变量,但我在之前的 post 中得到了解释,其他 post 认为这不是一个好的做法。
在 Notebook2 中是否有任何正确且快速的方法来重用或重新创建这三个列表及其名称?
使用第一个,在第二个笔记本中做conso_emi, surf, num_caract = loaded
。
我在 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)
在笔记本 2 中:
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:我没有保存列表的列表,而是将三个列表保存为字典,其中键是列表(变量)名称,值是列表本身在 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)
在笔记本 2 中:
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']}
当时我正在考虑从键和值中重新创建变量,但我在之前的 post 中得到了解释,其他 post 认为这不是一个好的做法。 在 Notebook2 中是否有任何正确且快速的方法来重用或重新创建这三个列表及其名称?
使用第一个,在第二个笔记本中做conso_emi, surf, num_caract = loaded
。