为了账号安全,请及时绑定邮箱和手机立即绑定

按键排序字典:单键优先级和字母顺序

按键排序字典:单键优先级和字母顺序

九州编程 2021-12-29 10:52:41
我有一个 Python 字典d:d = {     'a': 1,    'b': 2,    'c': 3,    'd': 4,}我想这样排序:有值的键x是第一位的。其他所有内容均按字母顺序排序。所以如果x = 'c'我希望输出是:>>> print(new_d)>>> { 'c': 3, 'a': 1, 'b': 2, 'd': 4}有没有一种直接/简单/Pythonic的方法来做到这一点?是的,我已经看到并理解了如何按值对字典进行排序的问题的大量答案?以及如何按键对字典进行排序?
查看完整描述

1 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

Python 3.7 之前的字典未排序,但是,您可以对从 中获得的元组列表进行排序dict.items,如果您使用的是 Python 3.7,请dict根据结果创建一个。该lambda排序键返回具有两个元素的列表。第一个元素是键比较的结果,在本例中为x == 'c',而第二个元素是与键关联的数值:


d = {'a': 1, 'b': 2, 'c': 3, 'd': 4} 

x = 'c'

new_d = sorted(d.items(), key=lambda c:[c[0] != x, c[-1]])

输出:


[('c', 3), ('a', 1), ('b', 2), ('d', 4)]

在 Python 3.7 中:


print(dict(new_d))

输出:


{'c': 3, 'a': 1, 'b': 2, 'd': 4}


查看完整回答
反对 回复 2021-12-29
  • 1 回答
  • 0 关注
  • 144 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信