我有以下格式的字典:
{
'Item1': {'Cl': ['E1', 'E2', 'E3'], 'Re': ['E1', 'E2', 'E3']},
'Item2': {'Cl': ['E1', 'E2', 'E3'], 'Re': ['E1', 'E2', 'E3']},
'Item3': {'Cl': ['E1', 'E2', 'E3'], 'Re': ['E1', 'E2', 'E3']},
'Item4': {'Cl': ['E2', 'E1', 'E3'], 'Re': ['E1', 'E2', 'E3']}
}
我想以以下格式重組:
{
'Item1': {'Re': ['E1', 'E2', 'E3'], 'Cl': ['E1', 'E2', 'E3']},
'Item2': {'Re': ['E1', 'E2', 'E3'], 'Cl': ['E1', 'E2', 'E3']},
'Item3': {'Re': ['E1', 'E2', 'E3'], 'Cl': ['E1', 'E2', 'E3']},
'Item4': {'Re': ['E2', 'E1', 'E3'], 'Cl': ['E1', 'E2', 'E3']}
}
我已經嘗試過 sorted() 但它似乎不起作用,或者我沒有以正確的方式實作它。
uj5u.com熱心網友回復:
您可以使用字典理解。我在這里假設您想按字典順序對鍵進行排序:
{k:{k2:v[k2] for k2 in sorted(v, reverse=True)} for k,v in d.items()}
輸出:
{'Item1': {'Re': ['E1', 'E2', 'E3'], 'Cl': ['E1', 'E2', 'E3']},
'Item2': {'Re': ['E1', 'E2', 'E3'], 'Cl': ['E1', 'E2', 'E3']},
'Item3': {'Re': ['E1', 'E2', 'E3'], 'Cl': ['E1', 'E2', 'E3']},
'Item4': {'Re': ['E1', 'E2', 'E3'], 'Cl': ['E2', 'E1', 'E3']}}
如果您想將“Re”推到開頭,并將其余部分保持相同的順序(假設超過 2 個鍵),您可以這樣做:
{k:{k2:v[k2] for k2 in sorted(v, key='Re'.__ne__)} for k,v in d.items()}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/447789.html
標籤:Python python-3.x 字典
上一篇:基于字典重命名具有范圍的列
下一篇:python中嵌套字典的規范化
