如何在Python中將字符串值指定爲空字典?例如,如何在Python中將字符串值分配爲空字典?
print hdr
AB_1_15_Oct_2015
hdr = {}
hdr
{}
但我想AB_1_15_Oct_2015
是一個空字典。
如何在Python中將字符串值指定爲空字典?例如,如何在Python中將字符串值分配爲空字典?
print hdr
AB_1_15_Oct_2015
hdr = {}
hdr
{}
但我想AB_1_15_Oct_2015
是一個空字典。
動態分配變量通常被認爲是一種不好的做法。有辦法做到這一點,例如使用exec,但這是危險的。 更好的想法是使用字典,因爲動態創建鍵和值很簡單。稍微修改現有代碼:
hdr = "AB_1_15_Oct_2015"
someDict = {}
someDict[hdr] = {}
然後,你既可以從頂層
someDict[hdr]['a'] = "spam"
或者通過指定其他變量來引用它訪問:
hdrDict = someDict[hdr]
hdrDict['b'] = "parrot"
該解決方案對我來說也適用。謝謝。我正在用另一種方式掙扎。你爲什麼稱它危險? –
'exec'和'eval'語句允許Python將字符串作爲代碼運行。如果這些字符串來自用戶(作爲文本輸入,來自文件,用戶可以訪問的掃描文件名等),則它給用戶提供了將任意代碼注入到程序中的手段。這是一個巨大的安全漏洞。一個不太糟糕的情況是您是生成所有字符串的人,即使這樣,一個錯誤可能會導致嚴重的副作用,或者難以調試的問題。 – Tofystedeth
如果你說你需要一個名爲「AB_1_15_Oct_2015」的字典。你需要明確定義一個名爲詞典:
AB_1_15_Oct_2015 = {}
如果你的意思是你希望能夠將基於關在一個字符串值的變量名,那麼有沒有辦法做到這一點。另外,我想不出你想要的理由。變量名稱僅在代碼內部使用,因此能夠根據日期更改變量名稱並不會幫助您跟蹤特定的日期。如果沒有您所要完成的更多信息,很難能夠告訴你需要什麼,但我認爲這樣的事情會完成你想要的:
hdr = {
"identifier": "AB_1_15_Oct_2015",
"data": whatever_you_wanted_to_store
}
這樣該標識符被附加到數據以可訪問的方式。
你是什麼意思我想分配一個字符串值作爲一個空的字典?你在說用字符串定義一個變量嗎? –
'AB_1_15_Oct_2015 = {}'? – sam
sam2090,是的,這是正確的。但我不想使用AB_1_15_Oct_2015來定義一個空字典。 –