python - 带有键计数的 Python Sorted() 列表,给出奇怪的结果
问题描述
我正在尝试按单个项目的频率对下面的项目列表进行排序。最大的在前,最小的在后。我想看看我是否可以sorted()
在尝试之前先使用collection.Counter
.
到目前为止我的代码是;
items = [4, 6, 2, 2, 6, 4, 4, 4]
x = sorted(items, key=items.count, reverse=True)
print(x)
上面的代码打印;[4, 4, 4, 4, 6, 2, 2, 6]
而不是;[4, 4, 4, 4, 6, 6, 2, 2]
有人可以解释为什么它不去“ 6,6,2,2 ”吗?
解决方案
它这样做的原因最好由该函数的文档解释:
内置的 sorted() 函数保证是稳定的。一个排序是稳定的,如果它保证不改变比较相等的元素的相对顺序——这有助于多次排序(例如,按部门排序,然后按薪级排序)。
推荐阅读
- r - 用于测量模型预测误差的 a3 包
- python - 是否可以与 pyodbc 一起运行多个并行进程,但我正在写入的 MS SQL Server 仅支持一个连接/光标?
- reactjs - 在 react-dom-router 中管理多个 BrowserRouter
- android -
布局尺寸不合适 - asp.net-identity - 注册新用户时查看错误原因
- python - 使用 keras 模型预测时遇到问题
- python - 如何显示完整结果,而不是 python 中正则表达式搜索的匹配文本
- git - 更换调制解调器/路由器后,我不再能够在本地访问内部 git 服务器,但仍然可以从外部网络访问
- python - 使用 PyPDF2 重命名文件时如何解决 PermissionError: [WinError 32]?请继续关注,.close() 不是答案
- matlab - Matab: copy certain rows from text files to another file