gpt4 book ai didi

python - 按键排序字典 : single key priority and alphabetical

转载 作者:太空宇宙 更新时间:2023-11-04 07:50:33 26 4
gpt4 key购买 nike

我有一个 Python 字典d:

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

我想这样排序:

  1. 值为 x 的键在前。
  2. 其他所有内容均按字母顺序排序。

所以如果 x = 'c' 那么我希望输出为:

>>> print(new_d)
>>> { 'c': 3, 'a': 1, 'b': 2, 'd': 4}

是否有直接/简单/Pythonic 的方式来做到这一点?是的,我已经看到并理解了问题的过多答案 How do I sort a dictionary by value?How can I sort a dictionary by key?

最佳答案

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}

关于python - 按键排序字典 : single key priority and alphabetical,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55520185/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com