我想知道是否有一種快速和pythonic的方式來創建基於字典的某些鍵字典?從拼合嵌套字典的映射創建一個新詞典
舉例來說,如果我有這個給定字典
{
"a": "abc",
"b": {"b1": "1", "b2": "2", "b3": "3"},
"c": 1,
"d": "timmy",
"e": "John"
}
我希望能夠創建一個新的字典,根據給定的字典中只有幾個鍵一對一的映射。所以在這個例子中,我想創建一個僅基於密鑰"b2"
,"c"
和"d"
的字典。我也想給這些鍵一個不同的名字。所需的輸出將是:
{
"out_b2": "2",
"out_c": 1,
"out_d": "timmy"
}
我能想出的最簡單的方法是創建嵌套的for循環執行此任務。我想知道是否有更高效的方法來實現這一目標。
我知道他的問題會根據投入和產出的情況而混淆不清。讓我們保持簡單,並說最深的級別是輸入的最大一個子詞典,並且輸出不會有任何偏差
相當不清楚。你能舉一些更多的例子嗎?可以有更多的子目錄嗎? – 2015-04-06 08:57:17
@tobias_k我想我能理解你爲什麼會感到困惑。我會馬上更新這個問題 – Liondancer 2015-04-06 09:06:39
好吧,你不能避免不得不遞歸地扁平化所有嵌套的子類,除非你有一些啓發式的知道鍵'b2'位於'd ['b']子代碼中,或除非所有需要鍵恰好發現在頂層。是否有更多缺失的信息需要告訴我們?我們是否應該根據頂級密鑰的排名相似度來猜測接下來應該怎麼處理?這聽起來更加麻煩,而不僅僅是遞歸。 – smci 2015-04-06 09:10:23