2012-10-06 3 views
1

저는 파이썬에 초보자이며 사전을 사용하여 간단한 단어 카운터를 작성하려고합니다.변수를 파이썬 내 사전에있는 객체와 동일하게 설정하는 방법

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

을 나는이 떠날 경우는 if 문을 입력 결코 그대로가이 문을 입력하고 말할 것이다 다음 키 메소드를 가지고 내가이 키 값을 넣을 경우, 다음 코드는 작동하지 않습니다 왜 궁금 내 setCount 변수에 잘못된 구문이 있습니다. 그 변수를 내가 만든 사전의 키 값에 저장된 객체로 설정하려고 시도하고 setCount 메소드로 단어 수를 증가시킵니다. 감사.

+1

당신은 당신의 코드의 관련 부분을 포함하지 않았습니다 .. 당신의'Word' 클래스 .. setCount() 메소드와 마찬가지로 .. –

답변

0

전체 코드를 볼 수는 없지만 에 어떤 메소드 setCount이 있어야하며 잘못 로컬 변수를 사용하고 있음을 예측할 수 있습니다. wordObject.setCount()으로 변경하면 간단한 도움이 될 수 있습니다.

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

이면 카운트를 저장할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 나는 마침내 if 문에 구문 오류가 있음을 깨달았습니다. 답장을 통해 내가하고 싶은 것을 쉽게 구현할 수있었습니다. – trueinViso

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}) 

Countermost_common([n]) 같은 몇 가지 추가 편리한 메소드와 단지 사전입니다 존재하지 않는 키를 얻으려고 할 때 0을 반환합니다. 따라서 파이썬 < 2.7에 있다면 dict을 하위 클래스 화하여 쉽게 구현할 수 있습니다.

관련 문제