我有一個嵌套字典。如何訪問它們并獲得如下結果:
dict_lbl = {
"lbl1":{"name":"label1","item1":"Accounts", "item2":"kannagu", "shortcut":"F1","printitem":"You clicked label1"},
"lbl2":{"name":"label2","item1":"Inventory", "item2":"Saragu", "shortcut":"F2","printitem":"You clicked label2"},
"lbl3":{"name":"label3","item1":"Manufacture","item2":"Thayarippu", "shortcut":"F3","printitem":"You clicked label3"},
"lbl4":{"name":"label4","item1":"PayRoll", "item2":"Sambalam", "shortcut":"F4","printitem":"You clicked label4"}
}
需要結果如下:
dict_name = {"lbl1":"label1","lbl2":"label2","lbl3":"label3","lbl4":"label4"}
dict_item1 ={"lbl1":"Accounts","lbl2":"Inventory","lbl3":"Manufacture","lbl4":"PayRoll"}
dict_item2 ={"lbl1":"kannagu","lbl2":"saragu","lbl3":"Thayaripu","lbl4":"Sambalam"}
dict_shortcut ={"lbl1":"F1","lbl2":"F2","lbl3":"F3","lbl4":"F4"}
dict_printitem = {"lbl1":"You clicked label1","lbl2":"You clicked label1","lbl3":"You clicked label1","lbl4":"You clicked label1"}
uj5u.com熱心網友回復:
dict_name = {k: v['name'] for k, v in dict_lbl.items()}
dict_item1 = {k: v['item1'] for k, v in dict_lbl.items()}
# etc...
uj5u.com熱心網友回復:
您可以在單個嵌套理解中執行此操作以生成 dicts 的 dict:
>>> dict_lbl = {
... "lbl1":{"name":"label1","item1":"Accounts", "item2":"kannagu", "shortcut":"F1","printitem":"You clicked label1"},
... "lbl2":{"name":"label2","item1":"Inventory", "item2":"Saragu", "shortcut":"F2","printitem":"You clicked label2"},
... "lbl3":{"name":"label3","item1":"Manufacture","item2":"Thayarippu", "shortcut":"F3","printitem":"You clicked label3"},
... "lbl4":{"name":"label4","item1":"PayRoll", "item2":"Sambalam", "shortcut":"F4","printitem":"You clicked label4"}
... }
>>> dict_key = {k: {n: d[k] for n, d in dict_lbl.items()} for k in {k for d in dict_lbl.values() for k in d}}
>>> import pprint
>>> pprint.pprint(dict_key)
{'item1': {'lbl1': 'Accounts',
'lbl2': 'Inventory',
'lbl3': 'Manufacture',
'lbl4': 'PayRoll'},
'item2': {'lbl1': 'kannagu',
'lbl2': 'Saragu',
'lbl3': 'Thayarippu',
'lbl4': 'Sambalam'},
'name': {'lbl1': 'label1',
'lbl2': 'label2',
'lbl3': 'label3',
'lbl4': 'label4'},
'printitem': {'lbl1': 'You clicked label1',
'lbl2': 'You clicked label2',
'lbl3': 'You clicked label3',
'lbl4': 'You clicked label4'},
'shortcut': {'lbl1': 'F1', 'lbl2': 'F2', 'lbl3': 'F3', 'lbl4': 'F4'}}
如果你愿意,你可以做dict_name = dict_key['name']etc,但實際上你可能會發現將它保存在一個嵌套的字典中更容易。
uj5u.com熱心網友回復:
使用字典理解:
dict_names = {k: v['name'] for k, v in dict_lbl.items()}
dict_item1 = {k: v['item1'] for k, v in dict_lbl.items()}
dict_item2 = {k: v['item2'] for k, v in dict_lbl.items()}
# etc.
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/475044.html
標籤:Python python-3.x
