fhand = open('romeo.txt')
counts = {}
for line in fhand:
words = line.split()
for word in words:
counts[word] = counts.get(word, 0 ) + 1
lst = []
for key, val in counts.items():
newtup = (val, key)
lst.append(newtup)
lst = sorted(lst, reverse=True)
for val, key in lst[:10] :
print(key, val)
텍스트 파일에서 가장 많이 활용한 단어 Top 10가지를 출력하는 프로그램이다.
- 먼저 text 파일을 열어준다.
- counts 딕셔너리를 하나 생성한다.
- for문을 통해 txt 파일이 끝날때까지 한 줄씩 읽어내려간다.
- 그와 동시에, words 라는 변수에 띄어쓰기로 분할된 리스트를 생성한다.
- words안에 있는 단어들(word)이 words를 하나씩 비교하면서
- counts 딕셔너리에 추가되며 가산된다.
- 이러한 방식을 통해 counts은 단어 : 갯수 를 모두 전달받은 딕셔너리가 된다.
- 리스트를 생성한다 (lst)
- counts 딕셔너리의 반환값 2개 (키 : 값)을
- 앞과 뒤를 바꾸어 lst에 추가한다.
- 이는 내림차순을 위함이다.
- lst를 내림차순 한다. reverse=True는 내림차순을 하게 한다. (sorted(lst, reverse=True)
- lst가 내림차순되면서 정렬이 되었다.
- lst 안에는 높은 빈도부터 낮은 빈도순으로 인덱스 별로 정렬 되어있을 것이다.
- 그러므로 for문을 통해 lst의 9번 인덱스까지 출력을 한다.
- 이때 val, key를 다시 key, val로 돌려서 출력한다.
'했던것들 > PY4E(모두를 위한 파이썬)' 카테고리의 다른 글
(파이썬) 튜플(tuple) (0) | 2022.05.28 |
---|---|
(파이썬) 딕셔너리를 이용한 리스트 카운팅 (0) | 2022.05.28 |
(파이썬) 딕셔너리(Dictionary) (0) | 2022.05.28 |
(파이썬) 문자열과 리스트를 활용한 값 추출하기 (0) | 2022.05.28 |
(파이썬) 리스트 활용 (몇가지 내장함수) (0) | 2022.05.28 |