티스토리 뷰

반응형

 

개발사항

  • 파일명은 사용자로부터 입력 받는다.
  • 사용자 입력값이 없으면 기본 파일(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

반응형
댓글
공지사항