我这里有一个代码,它计算一行中以“From”开头的第二个相似单词的数量,找出哪个单词出现的次数最多,并打印该单词及其出现频率。
在使用 get 方法的行中,我得到一个关键错误:(在这里插入第二个词)。这个关键错误发生在第一句话本身并且循环没有遍历。我完全不知道为什么会这样。
name = raw_input("Enter file:")
fh = open(name)
d=dict()
max=0
key=''
for line in fh:
line=line.rstrip()
if line.startswith('From '):
x=line.split()
d[x[1]] = d.get(d[x[1]],0) + 1
for z in d:
if d[z]>max:
max=d[z]
key = z
print key, max
谢谢。
请您参考如下方法:
d[x[1]] = d.get(d[x[1]],0) + 1
我觉得这条线不对。如果您尝试增加 d[x[1]],如果它不存在则将其初始化为零,请执行以下操作:
d[x[1]] = d.get(x[1],0) + 1
... 或者只使用 defaultdict 或 Counter,它们默认执行初始化,你可以只做 d[x[1]] += 1。
