텍스트파일에서 가장 빈도수가 많은 단어 출력
name = input('Enter file:')
handle = open(name)
di = dict()
for line in handle:
words = line.split()
for word in words:
di[word] = di.get(word,0) + 1
largest = -1
theword = None
for name, count in di.items() :
if count > largest :
largest = count
theword = name
print('Done', theword, largest)
딕셔너리 정렬
- 먼저, 튜플의 특성: 불변 속성, 여러 값끼리 한 번에 비교 가능, 딕셔너리 .item() 메소드는 (키,값) 쌍인 튜플의 리스트를 반환
(0, 1, 2) < (5, 1, 2)
# True
(0, 1, 2000000) < (0, 3, 4)
# True
( 'Jones', 'Sally' ) < ('Jones', 'Sam')
# True
( 'Jones', 'Sally') > ('Adams', 'Sam')
# True
- 키를 기준으로 정렬
d = {'b':1, 'a':10, 'c':22}
d.items()
# dict_items([('b', 1), ('a', 10), ('c', 22)])
sorted(d.items())
# [('a', 10), ('b', 1), ('c', 22)]
# OR
for k, v in sorted(d.items()):
print(k, v)
# a 10
# b 1
# c 22
- 값을 기준으로 정렬
c = {'a':10, 'b':1, 'c':22}
tmp = list()
for k, v in c.items() :
tmp.append( (v, k) )
print(tmp) # [(10, 'a'), (1, 'b'), (22, 'c')]
tmp = sorted(tmp)
print(tmp) # [(1, 'b'), (10, 'a'), (22, 'c')]
# 내림차순을 원할 경우
# tmp = sorted(tmp, reverse=True)
- 리스트 컴프리헨션 (List Comprehension)
c = {'a':10, 'b':1, 'c':22}
print( sorted( [ (v,k) for k,v in c.items() ] ) )
# [(1, 'b'), (10, 'a'), (22, 'c')]
가장 많이 등장한 단어 Top 10 출력
fhand = open('test.txt')
counts = {} # "단어:빈도수" 인 딕셔너리
for line in fhand:
words = line.split()
for word in words:
counts[word] = counts.get(word, 0 ) + 1
for val, key in sorted([ (v, k) in counts.items() ], reverse=True):
print(key, val)
'Programming Language > Python' 카테고리의 다른 글
[정리 03] 유용한 기능들 (0) | 2021.02.05 |
---|---|
[정리 02] 표준 데이터 타입(Standard Data-Type) (0) | 2021.02.04 |
[정리 01] Python 기초 (0) | 2021.02.04 |
Tip (Reference) (0) | 2019.05.15 |
[번역] 장고(Django) 프로젝트를 향상시키는 최고의 방법 (0) | 2018.06.28 |