如何在python中设置一个等于字典内对象的变量

时间:2012-10-06 19:32:40

标签: python

我是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方法增加单词count。感谢。

2 个答案:

答案 0 :(得分: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})

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

答案 1 :(得分:0)

我无法看到您的整个代码,但可以预测您必须在setCount中使用某个方法wordObject并错误地使用本地变量。更改为wordObject.setCount()可能有助于简化

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

足以存储计数。