热线电话:13121318867

登录
2019-01-18 阅读量: 2799
按字典中的数值排序?

目前,我正在尝试更多地了解如何利用理解。但是,我现在遇到了这个问题。

我有的字典:

d = {'Second': {('Carrie', 3), ('Diane', 3), ('Bob', 3)},

'Third': {('Alan', 2), ('Diane', 5)},

'Fourth': {('Carrie', 2), ('Alan', 5)},

'First': {('Bob', 5), ('Carrie', 5), ('Alan', 1), ('Diane', 1)} }

我试图按每个键所具有的值的数量对其进行排序,以便在返回时看起来像这样。如果密钥具有相同数量的值,则将按字母顺序排序。

期望的输出:

['First', 'Second', 'Fourth', 'Third']

到目前为止我所拥有的,我不确定如何按值的len排序:

d = {'Second': {('Carrie', 3), ('Diane', 3), ('Bob', 3)}, 'Third': {('Alan', 2), ('Diane', 5)}, 'Fourth': {('Carrie', 2), ('Alan', 5)}, 'First': {('Bob', 5), ('Carrie', 5), ('Alan', 1), ('Diane', 1)} }

def sorting(d):

return sorted([key for key, value in db.items(), key = lambda x: -len( )

132.3500
8
关注作者
收藏
评论(1)

发表评论
啊啊啊啊啊吖
2019-01-18
好吧,,,看书发现可以创建一个字典映射键到它们的长度,然后调用sorted它。 d2 = {k: len(d[k]) for k in d} sorted(d2, key=d2.get, reverse=True) # ['First', 'Second', 'Third', 'Fourth']
0.0000 0 0 回复
推荐帖子
条评论