IT/Python
[Python] 튜플을 이용한 딕셔너리 정렬
Dragonz
2020. 10. 13. 11:18
반응형
개발사항
- 파일명은 사용자로부터 입력 받는다.
- 사용자 입력값이 없으면 기본 파일(clown.txt) 를 오픈한다.
- 딕셔너리를 이용하여 오픈한 파일에 존재하는 단어와 단어 각각의 빈도수를 저장한다.
- 튜플을 활용하여 딕셔너리의 빈도수가 높은 key, value 를 내림차순으로 정렬한다.
# 파일명을 사용자로부터 입력받는다.
# 입력값이 없다면 기본파일(clown.txt) 를 오픈한다.
fname = input("Enter File : ")
if len(fname) < 1 :
fname = "clown.txt"
hand = open(fname)
di = dict()
for lin in hand :
lin = lin.strip()
wds = lin.split()
# 각 단어를 key 로 갖는 딕셔너리를 생성한다.
# 딕셔너리에 단어(key)가 존재하면 매핑되는 value 값을 리턴하고
# 리턴된 value 값에 1을 더하여 카운팅한다.
# 만약 단어(key)가 존재하지 않으면 기본값인 0 이 리턴되고
# 리턴된 0 에 1을 더하여 카운팅 한다.
for w in wds :
di[w] = di.get(w, 0) + 1
# 딕셔너리의 key 와 value 를 바꿔서 튜플을 생성하고
# 생성한 튜플은 리스트 항목으로 추가한다.
tmp = list()
for k, v in di.items() :
newt = (v, k)
tmp.append(newt)
# sorted 메소드로 리스트를 정렬한다. (내림차순)
tmp = sorted(tmp, reverse = True)
for v, k in tmp[:5] :
print(k, v)
END
반응형