2016-09-15 21 views
0

我有兩個元組 - 一個與鍵和另一個的不同類型(列表,float64,int和陣列)的變量的集合與來自字典下式的幫助下產生:如何從元組中解壓縮變量並從另一個元組中提供名稱?

keys, values = zip(*[(key, value) for (key, value) in data_dict.items()]) 

現在我想從值列表中檢索變量,並從鍵列表中給它們命名。我怎樣才能做到這一點?

+3

你是什麼意思*「給他們的名字」*?你爲什麼不用*使用字典?* – jonrsharpe

+0

我再次需要這些變量,因爲我每天運行一次代碼,並使用spyder數據文件(它將所有變量保存到字典中)以保持我的變量更新。 –

+0

你能否提供更多的上下文?如果將它們全部保存到字典中,*爲什麼不使用字典?* – jonrsharpe

回答

0

如果你想從你的字典創建在全球範圍內的變量,或許你會喜歡這個更新。

我不確定這是不是您要找的。

+0

這就是我正在尋找的!非常感謝! –

1

如果它真的無法保存您的鍵/值對在dict,並將它們序列化到該格式的數據文件,你可以使用exec動態構造賦值語句

>>> key = 'foo_var' 
>>> val = 'foo_val' 
>>> exec('{key} = \'{val}\''.format(key=key, val=val)) 
>>> foo_var 
'foo_val' 

我想探討首先儘可能採用dict的方法,以防萬一那可以爲你工作。儘可能避免使用execeval來生成運行時代碼有很多很好的理由。沒有拆包的字典

globals().update(data_dict) 

相關問題