作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
正如标题所说:
到目前为止,这是我的代码确实有效的地方,但是我无法按顺序显示信息。目前它只是随机显示信息。
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/
序 大家好呀,我是summo,这次来写写我在上班空闲(摸鱼)的时候做的一个小网站的事。去年阿里云不是推出了个活动嘛,2核2G的云服务器一年只要99块钱,懂行的人应该知道这个价格在业界已经是非常良心了
我尝试根据给定的级别顺序(BFS 顺序)构造 BST。我知道这是可能的,但我不知道我该怎么写。问题是我必须使用 BFS 序列。所以,我不能在这里使用递归,我必须迭代地编写我的程序......我发现这有
我是一名优秀的程序员,十分优秀!