본문 바로가기
방통대/파이썬

[파이썬] 12-2 파일의 활용

by 꿈꾸는 몽나 2024. 5. 10.
728x90

시퀀스

: 순서화된 값의 집합체를 저장할 수 있는 데이터 타입

-> 단일 식별자로 연속된 저장 공간 접근 수단 제공

-> 개별 원소의 값을 수정, 추가, 삭제 가능

-> 원소의 나열을 저장할 수 있는 타입

*리스트, 세트, 투플, 딕셔너리 등

 

 

 

 

 

딕셔너리

: 키와 값의 쌍을 저장하는 시퀀스

 

-구문형식

딕셔너리_이름 = {키1:값1, 키2:값2, ..., 키n:값n}

*키와 값을 :으로 연결후 ,로 나열

-> 세트, 리스트, 딕셔너리는 키 불가능

 

-빈 딕셔너리 생성 구문형식

딕셔너리_이름 = {}

딕셔너리_이름 = dict{}

 

-추가 구문형식

딕셔너리_이름[키] = 값

 

-삭제 구문형식

del 딕셔너리_이름[키]

 

 

 

 

딕셔너리 멤버

 

 

 

 

 

딕셔너리 순회

-순회

: 각각의 항목을 순서대로 한 번씩만 방문하는 과정

 

-순회 형식

for key in dictionary:
    print(key + ":" + str(dictionary[key])
    key 사용블록

 

 

 

 

데이터 분석 프로그램

: "Hamlet_by_Shakespeare.txt" 파일에 포함된 단어가 출현한 횟수를 출력하는 프로그램을 작성하시오.

 

h_fp = open("Hamlet_by_Shakespeare.txt", "r")

#빈 딕셔너리 생성
word_dict = dict()

#텍스트를 줄 단위로 읽어낸다
for line in h_fp.readlines():
    #라인단위의 한 줄에 있는 여러 단어들을 하나 하나씩 끊어주어야 한다.
    #strip : 불필요한 개행문자 제거
    #split : 결과물을 하나씩 분할
    for word in line.strip().split():
        #제거할 문자들을 모두 입력
        #인용 부호를 나타낼 때에는 "가 아닌 \"라고 적어주어야 함(", ')
        word = word.strip(".,:?[]\"\'-").lower()
        
        #(정돈된)word를 word_dict의 key로 가져온 것
        #is not None : 있다면
        if word_dictionary.get(word) is not None:
            count = word_dict[word]
        else:
            count = 0
            
        word_dict[word] = count + 1
        
#key와 value를 바꾸어 줄 새로운 딕셔너리 생성
#word_dict에서 리스트로 가져온 것들의 key와 value를 뒤바꾸어 새로운 word_r_dict에 넣기
word_r_dict = {v:k for (k, v) in word_dic.items() }

#정렬을 쉽게 해 주는 내장함수 sorted -> key값으로만 정렬 가능
#reverse=True : 내림차순으로 정렬하는 sorted함수의 옵션
#word_r_dict에서 가져온 것들을 정렬
word_dict = {k:v for (v, k) in sorted(word_r_dict.items(), reverse=True)}
        
 #딕셔너리 순회
 for key in word_dict:
     #100회 이상 등장하는 단어만 출력
     if word_dict[key] >= 100:
         #key값(단어들)과 카운트한 횟수(word_dict[key])를 출력하는 작업
         print("["+key+"]", str(word_dict[key]) + "회")
     
#파일을 사용하고 난 후에는 꼭 close() 처리해줄 것
h_fp.close()

 

 

출력(정렬 전):

 

 

출력(정렬 후):

728x90

'방통대 > 파이썬' 카테고리의 다른 글

[파이썬] 12강. 파일 연습 문제  (0) 2024.05.10
[파이썬] 12-1 파일  (0) 2024.05.09
[파이썬] 11강. 모듈 연습 문제  (0) 2024.05.02
[파이썬] 11-2 유용한 모듈  (2) 2024.05.02
[파이썬] 11-1 모듈  (2) 2024.05.02