본문 바로가기
프로그램

[파이썬] 문제 : 입력 받은 문장의 단어 빈도수

by 오디세이99 2022. 11. 21.
728x90
반응형

# 입력 받은 문장
data = 'It Was The Best Of Times It Was The Worst Of Times'

# 단어로 나눔
data2 = data.split(' ')
data2 = [w.lower() for w in data2]   # 소문자 변경
data2.sort()                          # 오름차순 정렬

# 단어사전에서 단어 찾고 빈도수 증가 함수
def search_word(w_list, w):
    if len(w_list) == 0:
        w_list.append([w, 1])  # 신규 단어이기 때문에 추가, 빈두수=1
    else:
        find_flag = 0
        for i in range(len(w_list)):
            if w_list[i][0] == w:  # w_list 첫번째는 단어, 두번째는 빈도수
                w_list[i][1] += 1
                find_flag = 1
                break
        if find_flag == 0:
            w_list.append([w, 1])  # 신규 단어이기 때문에 추가, 빈두수=1
            
    return w_list

# 단어별 count
word_dic = []   # [단어,count] 저장 리스트
for i in range(len(data2)):
    w = data2[i]
    word_dic = search_word(word_dic, w)

for w in word_dic:
    print('(',w[0],',',w[1],')')

결과

( best , 1 )
( it , 2 )
( of , 2 )
( the , 2 )
( times , 2 )
( was , 2 )
( worst , 1 )
728x90
반응형

댓글