python - 如何按重复次数对文本进行排序?
问题描述
我有一个文本文件abc.txt
,它包含以下几行:
a
a
b
c
c
c
d
d
我想按每个单词按降序重复的次数对这个列表进行排序,在这种情况下,它将是:
c - 3 times
a - 2 times
d - 2 times
b - 1 time
到目前为止,我已经阅读了文本文件,尝试对列表进行排序,但使用Python失败了......任何帮助将不胜感激!
解决方案
这段代码:
- 从文件中读取行
- 使用 collections.Counter 对它们进行计数,它也为我们进行排序
- 以您要求的格式显示它们
from collections import Counter
def main():
file_path = 'abc.txt'
with open(file_path, 'r') as f:
lines = f.read().split('\n')
result = Counter(lines)
for_show = '\n'.join(f'{key}: {value} item{"s" if value > 1 else ""}' for key, value in result.most_common())
print(for_show)
if __name__ == '__main__':
main()
推荐阅读
- http - 无法访问前端应用程序中的自定义响应标头
- django - django 查询:获取只有“时间”大于 HH:mm 的对象,无论日期是什么?
- php - 社交名流:传递给 Illuminate\Auth\SessionGuard::login() 的参数 1 必须实现接口 Illuminate\Contracts\Auth\Authenticatable,给定 null
- google-bigquery - Google BigQuery:INFORMATION_SCHEMA 在某些位置不可用
- ios - info.plist 中支持的接口方向似乎阻止了对 shouldAutorotate 的调用
- php - 如何使用php在数据库中生成唯一ID(MC0001)并且它不会在数据库中重复
- perl - 如何使用 html 创建按钮到 perl 中的符号链接文件?
- android - 如何根据自己的类别填充数据
- android - Ziggeo 错误 setPreviewTexture 使用 Fragment 失败
- java - arraylist 如何在内部使用数组存储不同的数据类型