파이썬 3.2/Windows 환경에서 단어 발생 횟수 응용 프로그램에 대한 작업.파이썬 단어 개수 및 순위
아무도 다음 작동하지 않는 이유를 말해 줄 수 있습니까?
from string import punctuation
from operator import itemgetter
N = 100
words = {}
words_gen = (word.strip(punctuation).lower() for line in open("poi_run.txt")
for word in line.split())
for word in words_gen:
words[word] = words.get(word, 0) + 1
top_words = (words.iteritems(), key=itemgetter(1), reverse=True)[:N]
for word, frequency in top_words:
print ("%s %d") % (word, frequency)
추적 다시 오류는 다음과 같습니다
Message File Name Line Position
Traceback
<module> C:\Users\will\Desktop\word_count.py 13
AttributeError: 'dict' object has no attribute 'iteritems'
감사
N.B.
완전 작업 코드 :
from string import punctuation
from operator import itemgetter
N = 100
words = {}
words_gen = (word.strip(punctuation).lower() for line in open("poi_run.txt")
for word in line.split())
for word in words_gen:
words[word] = words.get(word, 0) + 1
top_words = sorted(words.items(), key=itemgetter(1), reverse=True)[:N]
for word, frequency in top_words:
print ("%s %d" % (word, frequency))
다시 한번 감사들
파이썬 3.x의에서
'top_words = (words.iteritems(), 키 = itemgetter (1), 역 = true)를 [: N]'- 여기에 함수 이름이 누락되지 않았습니까? – eumiro
'defaultdict'를 사용하는 것이 좋습니다 :'words = defaultdict (int); word_gen에있는 단어들 : words [word] + = 1'. –
@TimPietzcker : 실제로 동일한 모듈의 '카운터'가 더 좋습니다. 완벽 해. 왜 전에 생각하지 않았어? 아이디어를 가져 주셔서 감사합니다. –