gpt4 book ai didi

python - 我正在尝试计算 txt 文件中的所有字母,然后按降序显示

转载 作者:太空狗 更新时间:2023-10-29 22:18:08 25 4
gpt4 key购买 nike

正如标题所说:

到目前为止,这是我的代码确实有效的地方,但是我无法按顺序显示信息。目前它只是随机显示信息。

def frequencies(filename):
infile=open(filename, 'r')
wordcount={}
content = infile.read()
infile.close()
counter = {}
invalid = "‘'`,.?!:;-_\n—' '"

for word in content:
word = content.lower()
for letter in word:
if letter not in invalid:
if letter not in counter:
counter[letter] = content.count(letter)
print('{:8} appears {} times.'.format(letter, counter[letter]))

如有任何帮助,我们将不胜感激。

最佳答案

字典是无序的数据结构。此外,如果你想计算一组数据中的某些项目,你最好使用 collections.Counter()为了这个目标,它更加优化和 pythonic。

然后您可以只使用 Counter.most_common(N) 来打印您的 Counter 对象中的大多数 N 项。

关于文件的打开,您可以简单地使用 with 语句在 block 的末尾自动关闭文件。最好不要在你的函数中打印最终结果,你可以通过生成预期的行然后在你需要的时候打印它们来使你的函数成为一个生成器。

from collections import Counter

def frequencies(filename, top_n):
with open(filename) as infile:
content = infile.read()
invalid = "‘'`,.?!:;-_\n—' '"
counter = Counter(filter(lambda x: not invalid.__contains__(x), content))
for letter, count in counter.most_common(top_n):
yield '{:8} appears {} times.'.format(letter, count)

然后使用 for 循环遍历生成器函数:

for line in frequencies(filename, 100):
print(line)

关于python - 我正在尝试计算 txt 文件中的所有字母,然后按降序显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41530795/

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