如何排序文本它是重复多少?



我有一个文本文件abc.txt,它包含以下行:

a
a
b
c
c
c
d
d

我想对这个列表按每个单词的重复次数降序排序,在这种情况下它将是:

c - 3 times
a - 2 times
d - 2 times
b - 1 time
到目前为止,我已经阅读了文本文件,试图对列表进行排序,但使用Python失败了…任何帮助将不胜感激!

此代码:

  • 从文件
  • 读取行
  • 使用集合计数它们。计数器为我们做排序
  • 向他们展示的格式要求
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()

另一种方法是:

with open("abc.txt", 'r') as f:
data = f.readlines()
counter = {}
for w in data:
w = w.strip()
counter[w]=counter.get(w, 0)+1
sorted_data = sorted(counter.items(), key=lambda x: x[1], reverse=True)
for data in sorted_data:
print (f'{data[0]}-{data[1]} times')

输出:

c-3 times
a-2 times
d-2 times
b-1 times

相关内容

  • 没有找到相关文章

最新更新