python - 已排序的字典列表

标签 python sorting dictionary

好吧,我正在尝试对字典中的键值对字典进行排序。键是单词,值是十进制值。我正在尝试根据值获取排序键的列表。现在我有:

sortedList = sorted(wordSimDic, key=wordSimDic.get,reverse=True)

这有效。然而,我希望能够进一步做一件事。如果键的值匹配,我希望它们在输出列表中按字母顺序按键排序。

For example

    Input:
    {'c':1,'a':1,'d':3}

    Output:
    [a,c,d]

 right now my output is:
    [c,a,d]

您有什么建议吗?非常感谢!

最佳答案

一般来说,要在 Python 中“按 X 然后 Y 排序”,您需要一个生成 (X, Y) 元组(或其他序列,但元组实际上是最简单和最干净的序列)的关键函数。因此:

sorted(wordSimDic, key=lambda k: (wordSimDic.get(k), k), reverse=True)

关于python - 已排序的字典列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27199082/

相关文章:

python - 使用 easy_thumbnails_ffmpeg

php - 根据有序数组对多维数组进行排序

c++ - 将 STL 映射转换为结构体

sorting - 奇偶排序不兼容

python - 对字典值的操作没有输出

c# - Foreach 在 xslt 中带有嵌套字典

python - 返回所有任务不返回已完成的任务

python - 使用 .onnx 模型的 OpenCV(Ptyhon)的 DNN 模块中的前向方法错误

python - 如果第一个参数不是列表,是否会引发使用 loc 插入行值错误的 pandas Dataframe?

python - Pandas 数据框中的自定义数据排序