python字典排序并输出_python – 按字符值对字典进行排序,然后在值相等的情况下对其键进行排序,然后输出列表...

本文介绍了一种在Python中对字典进行排序的方法,先按键排序再按值排序,确保了排序稳定性。通过两次排序及列表解析实现了目标排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

map={"a":5, "b":2, "c":7, "d":5, "e":5}

输出应该是:

['c', 'a', 'd', 'e', 'b']

因此,代码应首先按其值按降序排列字典,然后如果其值相同,则应按键按升序排序.到目前为止我有……

newmap=map

newmap=sorted(newmap.iteritems(), key=operator.itemgetter(1,0),reverse=True)

print newmap

这给了我输出[(‘c’,7),(‘e’,5),(‘d’,5),(‘a’,5),(‘b’,2)].所以,我需要按升序获得e,d,a …而不会弄乱各种数字.我该怎么做呢?

解决方法:

在Python中保证排序是稳定的,所以你要做的就是排序两次:首先是键,然后是值.

sorted_pairs = sorted(sorted(map.iteritems()), key=operator.itemgetter(1), reverse=True)

要从此输出中获取密钥,您可以使用列表解析:

[k for k,v in sorted_pairs]

附:不要将变量命名为与Python类型相同,否则有一天你会感到非常惊讶.

标签:python,sorting

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值