티스토리 뷰

study/Python

Dictionary

xoxowo 2022. 6. 13. 17:19

여러 개의 값을 나타낼 수 있게 해주는 자료형에는 리스트(list)딕셔너리(dictionary)가 있는데,

리스트가 '인덱스'를 기반으로 값을 저장하는 자료형이라면 딕셔너리는 '키'를 기반으로 값을 저장하는 것이라고 할 수 있다.

 

 

딕셔너리 생성

딕셔너리는 다음과 같이 중괄호 { }로 선언하며, '키 : 값' 형태를 쉼표 (,)로 연결해서 만든다. 

키는 문자열, 숫자, 불 등으로 선언할 수 있으며 딕셔너리 내부의 값에 리스트와 딕셔너리를 넣을 수도 있다.

변수명 = {
   	   '키' : '값',  # 문자열을 키로 사용
           100 :  20 ,  # 숫자를 키로 사용
           True : 1004   # 불을 키로 사용
          "동물" : ["토끼", "고양이", "강아지", "병아리" ] # 리스트도 값으로 사용 
         }

 

딕셔너리 요소에 접근

딕셔너리 요소에 접근할 때는 딕셔너리 뒤에 대괄호 [ ] 를 입력하고 내부에 인덱스처럼 '키'를 입력한다.

dict_a = {
	"name" : "헤어질 결심",
  	"type" : "로맨스 스릴러",
        "cast" : ["탕웨이", "박해일", "이정현", "고경표"]
	}

>>> dict_a  # 변수명을 입력하면 내부 요소를 모두 출력
>>>{'name': '헤어질 결심', 'type': '로맨스 스릴러', 'cast': ['탕웨이', '박해일', '이정현', '고경표']}

>>>dict_a["name"] # 특정 키를 출력 시 변수명['키값']을 입력
>>>'헤어질 결심'

>>>dict_a["cast"][1] # 인덱스를 지정하여 리스트 안의 특정 값 출력
>>>'박해일'

 

딕셔너리에 값 추가 / 제거

딕셔너리에 값을 추가할 때는 키를 기반으로 입력하면 된다.

제거는 리스트와 마찬가지로 del 키워드를 사용하여 특정 키를 지정하면 해당 요소가 제거 된다.

딕셔너리[새로운 키] = 새로운 값

# 딕셔너리에 값 추가 
dict_a["개봉"] = "2022.06.29"

>>>dict_a   #추가된 키값 출력 확인
>>>{'name': '헤어질 결심', 'type': '로맨스 스릴러',
'cast': ['탕웨이', '박해일', '이정현', '고경표'], 
'개봉': '2022.06.29'}

# 특정 요소 제거 시 del 키워드 사용
>>>del dict_a["개봉"]

>>>dict_a 
>>>{'name': '헤어질 결심', 'type': '로맨스 스릴러','cast': ['탕웨이', '박해일', '이정현', '고경표']}

 

딕셔너리 내부에 키가 있는지 확인하는 방법

딕셔너리 내부에 존재하지 않는 키에 접근하면 KeyError가 발생한다. 그래서 존재하는 키인지 확인할 수 있는 방법이 필요한데,

in 키워드와 get()함수를 사용하는 방법이 있다.

 

in 키워드

리스트와 마찬가지로 특정 값이 딕셔너리 내부에 있는지 확인하는 방법이다.

# 딕셔너리 선언
dict_a = {
	"name" : "헤어질 결심",
  	"type" : "로맨스 스릴러",
        "cast" : ["탕웨이", "박해일", "이정현", "고경표"],
        "개봉" : "2022.06.29"
	}
    
# 사용자로부터 입력을 받는다.
key = input("접근하고자 하는 키: ")

if key in dict_a:
	print(dict_a[key])
else:
    print("존재하지 않는 키에 접근했었습니다.")


# 실행결과
> 접근하고자 하는 키 : name
헤어질 결심
> 접근하고자 하는 키 : director
존재하지 않는 키에 접근했었습니다.

 

get() 함수

get() 함수는 딕셔너리의 키로 값을 추출하는 기능으로 딕셔너리[키]를 입력할 때와 같은 기능을 수행하지만, 존재하지 않는 키에 접근할 경우 KeyError를 발생시키지 않고 None을 출력한다.

# 딕셔너리 선언
dict_a = {
	"name" : "헤어질 결심",
  	"type" : "로맨스 스릴러",
        "cast" : ["탕웨이", "박해일", "이정현", "고경표"],
        "개봉" : "2022.06.29"
	}
    
# 존재하지 않는 키에 접근
key = dict_a.get("존재하지 않는 키")
# 출력
print("값:", key)
    
# None 인지 확인
if key == None :
	print("존재하지 않는 키에 접근했었습니다.")
    
#실행 결과
값 : None
'존재하지 않는 키에 접근했었습니다.'

 

 


내용 참조 - 혼자 공부하는 파이썬

댓글