我的字典的簡化:如何覆蓋python字典值?
my_dict = {
'DOC': [
[('k', 'v'), ('k1', 'v1'), ('k2', 'v2'), ('k3', 'v3'), ('k4', 'v4')],
[('k5', 'v5'), ('k', 'v'), ('k1', 'v1'), ('k6', 'v6')]
],
'DIC': [
[('k7', 'v7'), ('k3', 'v3'), ('k8', 'v8')],
[('k5', 'v5'), ('k3', 'v3'), ('k1', 'v1'), ('k2', 'v2')],
[('k4', 'v4'), ('k9', 'v9')]
],
'INFRA': [
[('k5', 'v5'), ('k3', 'v3'), ('k1', 'v1'), ('k2', 'v2')],
[('k', 'v'), ('k1', 'v1'), ('k2', 'v2'), ('k3', 'v3'), ('k4', 'v4')]
]
}
覆蓋我的字典值:
for k, v in my_dict.items():
my_dict[k] = map(lambda x: dict(x), my_dict[k])
返回...
my_dict
{'DIC': [{'k3': 'v3', 'k7': 'v7', 'k8': 'v8'},
{'k1': 'v1', 'k2': 'v2', 'k3': 'v3', 'k5': 'v5'},
{'k4': 'v4', 'k9': 'v9'}],
'DOC': [{'k': 'v', 'k1': 'v1', 'k2': 'v2', 'k3': 'v3', 'k4': 'v4'},
{'k': 'v', 'k1': 'v1', 'k5': 'v5', 'k6': 'v6'}],
'INFRA': [{'k1': 'v1', 'k2': 'v2', 'k3': 'v3', 'k5': 'v5'},
{'k': 'v', 'k1': 'v1', 'k2': 'v2', 'k3': 'v3', 'k4': 'v4'}]}
當我跑我下面,我得到了相同的邏輯真正的代碼錯誤:
ValueError: dictionary update sequence element #0 has length 6; 2 is required
我試着創建另一個字典來接收map()
,但發生了同樣的錯誤。有人可以幫助我嗎?
你的代碼對我來說運行良好。你可以顯示一個導致「ValueError」的例子嗎? – 2012-08-13 19:31:21
真的很難找到你看不到的代碼中的錯誤。':(' – 2012-08-13 19:32:19
Aside:'{k:map(dict,v)for k,v in my_dict.iteritems()}'有點簡單(2.7;'.items()'3)。'lambda'是不必要的,即使你提取它也不使用'v' – DSM 2012-08-13 19:42:55