Skip to main content
 首页 » 编程设计

python之排序python字典

2025年05月04日10mq0036

我有这本字典:

a = {(u'A', 4): [u'alpha', u'beta', u'gamma'], 
     (u'B', 2): [28, 29, 28], 
     (u'C', 5): [u'Yes',u'Yes', u'Yes'], 
     (u'E', 1): [u'delta', u'omega', u'eta'],  
     (u'F', 3): [u'No', u'Yes', u'No']} 

我想对其进行排序并得到:

a = {(u'E', 1) : [u'delta', u'omega', u'eta'], 
     (u'B', 2) : [28, 29, 28], 
     (u'F', 3) : [u'No', u'Yes', u'No'], 
     (u'A', 4) : [u'alpha', u'beta', u'gamma'], 
     (u'C', 5):[u'Yes',u'Yes', u'Yes']} 

按键排序,但在我的例子中,我有一个元组。我想按数字将字典排序到 tuple (key[1]) 中。

请您参考如下方法:

使用 collections.OrderedDict :

from collections import OrderedDict 
 
a = {(u'A', 4): [u'alpha', u'beta', u'gamma'],  
     (u'B', 2): [28, 29, 28], 
     (u'C', 5): [u'Yes',u'Yes', u'Yes'],  
     (u'E', 1): [u'delta', u'omega', u'eta'],  
     (u'F', 3): [u'No', u'Yes', u'No']} 
 
b = OrderedDict(sorted(a.items(), key=lambda x:x[0][1])) 
 
print b