我想實例化一個嵌套的字典,其中包含另一個字典作爲鍵和每個這些字典包含另一個字典。我知道嵌套和嵌套嵌套字典中有哪些鍵和多少個鍵,但我不知道上部字典中有多少個鍵和哪些鍵(這將是OrderedDict和鍵將是整數,但我不知道知道多少)。實例化一個嵌套的字典
上面的詞典包含整數作爲鍵和詞典作爲值 - 每個這些詞典有3 keys = 'forth','back'
和'price'
。
'forth'
和'back'
另有字典作爲它們的值。每個類型的字典(值)包含了這些鍵
'arr_date','arr_place','dep_date','dep_place'.
因此,例如,「規定」字典是:
dict.fromkeys(['arr_date','arr_place','dep_date','dep_place'],None)
因此,問題是,我想要實例與這些密鑰,但這一問題的字典上部字典可以具有可變整數。它可以包含這些密鑰[1,2,3,4]
,但也可以包含[1,2,3,4,5,6,7,8]
。
這是一個嵌套和嵌套嵌套實例化的例子。所以這將是每個鍵的上字典的值(我不確定條件是否會起作用)。
dict.fromkeys(['forth','back','price'], dict.fromkeys(['arr_date','arr_place','dep_date','dep_place'],None) if key in ['forth','back'] else None)
整件事情是我想告訴代碼儘可能多的默認值和鍵。
任何建議?
編輯:條件6行以上不起作用,所以任何人都可以告訴如何做到這一點。
編輯II:所以字典應該看起來像:
{1:{'forth':{'arr_date':'15-8-4','arr_place':'Atlanta','dep_date':'15-8-4','dep_place':'New York'},'back':{'arr_date...},'price':158},2:{....}}
,你能否告訴一下這本字典可能看起來像使用文字字典語法的例子嗎?我不太明白你想做什麼。 –
我完全不理解你的問題,但你確定你想要一些字典作爲另一個字典的關鍵嗎?這是不可能的,因爲鍵需要可哈希對象,這些字典不是... –
如果你真的有字典詞典的字典,那麼保持不同層次的直觀可能看起來很複雜。您可以引入功能來管理複雜性。編寫一個makeimpledict函數,它可以創建最內層的字典(使用任何你想要的默認值),然後編寫另一個函數makemetadict,它使用第一個函數創建值並返回中級字典,然後在該階段使頂層級別的字典可以是一個簡單的字典理解使用'makemetadict' –