我的字典怎么了?

2024-06-02 06:25:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我运行以下代码来计算一个单词在文本文件中出现的次数。你知道吗

def print_words(filename):
    f = open(filename, 'rU')
    dict={}
    for line in f:
       words=line.split()
       for word in words:
          if dict.get(word):
              dict[word]=dict[word]+1
          else: 
              dict[word]=1
    ke = sorted(dict.keys())
    for k, v in ke: print k, v

字典文件应该包含每个单词及其计数。我能让它正常工作。但我没能整理出


Tags: 代码infordeflineopenfilename单词
3条回答

其他答案也指出了问题所在。如果您使用的是python2.7+,那么这里有一种更简单的方法,即使用collections模块中的^{}类。你知道吗

from collections import Counter

def print_words(filename):
    with open(filename, 'rU') as f:
        counts = Counter(f.read().split())
    for k, v in sorted(counts.items()):
        print k, v

sorted(dict.keys())只返回键的排序列表。for循环错误地期望在同一列表中找到值。请尝试以下代码:

for k in ke:
    print k, dict[k]

而不是

ke = sorted(dict.keys())
for k, v in ke: print k, v

尝试:

for k in sorted(dict.keys()):
    print k, dict[k]

sorted(dict.keys())将返回一个仅包含键的排序列表(因为这就是您所给出的全部内容)。你知道吗

相关问题 更多 >