1

我是 python 新手,我正在尝试使用字典编写一个简单的单词计数器。我想知道为什么以下代码不起作用:

while word != None:
      wordObject = Word()
      wordObject.setWord(word)
      if dictionary.has_key(wordObject.getWord():
            setCount = dictionary[wordObject.getWord()]
            setCount.setCount()

如果我保持原样,它永远不会进入 if 语句,如果我在 has key 方法中放置一个键值,那么它将进入语句并说我的 setCount 变量有无效的语法。我正在尝试将该变量设置为存储在我创建的字典中的键值中的对象,然后使用 setCount 方法增加单词计数。谢谢。

4

2 回答 2

1

用于collections.Counter计数(Python 2.7+)。例如,如果你想计算一个单词列表,这就是你要做的:

from collections import Counter

words = ['stack', 'overflow', 'stack', 'exchange']
counter = Counter(words)

print counter

结果:

Counter({'stack': 2, 'overflow': 1, 'exchange': 1})

ACounter只是一个带有一些额外便利方法的字典,例如most_common([n])当尝试获取不存在的键时它返回零。因此,如果您使用的是 Python < 2.7,您可以通过子类化轻松实现自己的dict

于 2012-10-06T19:43:41.483 回答
0

我看不到你的整个代码,但可以预测你一定有一些方法setCountwordObject并且错误地使用了局部变量。更改为wordObject.setCount()可能有助于否则一个简单的

count = 0
while word != None:
      wordObject = Word()
      wordObject.setWord(word)
      if dictionary.has_key(wordObject.getWord():
            setCount=dictionary[wordObject.getWord()]
            count += 1

足以存储计数。

于 2012-10-06T19:38:04.020 回答