首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按键排序字典:单键优先级和字母顺序

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

Stack Overflow用户
提问于 2019-04-04 15:49:28
回答 1查看 162关注 0票数 1

我有一个Python字典d

代码语言:javascript
复制
d = { 
    'a': 1,
    'b': 2,
    'c': 3,
    'd': 4,
}

我想把这件事分类如下:

  1. x的键是第一个。
  2. 其他的都是按字母顺序排列的。

因此,如果是x = 'c',那么我希望输出为:

代码语言:javascript
复制
>>> print(new_d)
>>> { 'c': 3, 'a': 1, 'b': 2, 'd': 4}

有没有一种简单的/简单的/毕达内式的方法来做到这一点?是的,我已经看到并理解了How do I sort a dictionary by value?How can I sort a dictionary by key?问题的大量答案

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-04 15:54:29

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

代码语言:javascript
复制
d = {'a': 1, 'b': 2, 'c': 3, 'd': 4} 
x = 'c'
new_d = sorted(d.items(), key=lambda c:[c[0] != x, c[-1]])

输出:

代码语言:javascript
复制
[('c', 3), ('a', 1), ('b', 2), ('d', 4)]

在Python 3.7中:

代码语言:javascript
复制
print(dict(new_d))

输出:

代码语言:javascript
复制
{'c': 3, 'a': 1, 'b': 2, 'd': 4}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55520185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档