python3字典有序还是无序_python3中嵌套字典的排序列表

创建mydict的有序版本

让我们从你的字典开始:>>> mydict = {

... 'b': {'play': 2, 'scratch': 5, 'face': 8},

... 'c': {'do': 4, 'chew': 6},

... 'a': {'wash': 1, 'drink': 10, 'give': 20, 'eat': 30}

... }

普通字典是无序的。但是,可以从“集合”模块获取已排序词典:

^{pr2}$

我们可以按如下方式将您的词典转换为有序词典:

^{3}$

正如您在上面看到的,d是按我们的要求进行排序的。或者,我们可以只查看密钥并验证它们是否按我们想要的顺序排列:>>> d.keys()

odict_keys(['a', 'b', 'c'])

在其他方面,我们的有序字典d的行为与常规字典类似:>>> d['a']

{'give': 20, 'drink': 10, 'eat': 30, 'wash': 1}

按键排序mydict,同时按值降序排列mydict中的字典

如果我们想让mydict中的字典按值的降序排序,我们再次使用OrderedDict:>>> mydict['a']

{'give': 20, 'drink': 10, 'eat': 30, 'wash': 1}

>>> OrderedDict(sorted(mydict['a'].items(), key=lambda v: -v[-1]))

OrderedDict([('eat', 30), ('give', 20), ('drink', 10), ('wash', 1)])

如果要将此顺序应用于mydict的所有条目:>>> d = OrderedDict( sorted( (key1, OrderedDict(sorted(value.items(), key=lambda v: -v[-1]))) for (key1, value) in mydict.items()) )

>>> d

OrderedDict([('a', OrderedDict([('eat', 30), ('give', 20), ('drink', 10), ('wash', 1)])), ('b', OrderedDict([('face', 8), ('scratch', 5), ('play', 2)])), ('c', OrderedDict([('chew', 6), ('do', 4)]))])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值