字典统计排序python123_按值对字典进行排序Python(3级Dict)

考虑使用sorted函数。使用this作为引用。对于这种情况,必须使用一个key函数来告诉python如何比较问题中字典的两个实体。然后,sorted函数返回一个您要迭代的列表。在

例如>>>sorted(student_tuples, key=lambda student: student[2]) # sort by age

[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

对于你的案子,你需要从口述中得到项目

编辑:

首先,正如其中一条评论所说,在python中不能直接对dict进行排序。我不认为你需要的是有条理的口述。只能对已转换为列表元组的dict进行排序。例如{'a':'b','c':'d'},必须先转换为[('a','b'),('c','d')],然后您可以选择按您的意愿排序。这里的问题是一旦你这样做了,你就不能将它存储回一个正常的dict中,原因是正常dict的工作方式不是这样的。您可以在python集合中使用ordereddict,它“记住”插入的顺序,因此是一个“排序”dict,但是如果不做一些工作,就不能轻松地创建“排序”dict

对于您的输入,我的示例中的“b”是一个dict,因此您必须做一些工作来获得所需的密钥。我假设你想在每个'INT-ABC'的'acc'值之间排序。在

^{pr2}$

鉴于此>>> from collections import OrderedDict

>>> t = OrderedDict()

>>> k_dict.items()[0][0]

'INT-ABC1'

>>> t[k_dict.items()[0][0]] = sorted(k_dict.items()[0][1].items(), key=lambda x: x[1]['val'])

>>> t

OrderedDict([('INT-ABC1', [('acc1', {'Qua': -241.0, 'val': -22313.7381693064}), ('acc2', {'Qua': -13.0, 'val': -1312.940854148})])])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值