1. 딕셔너리  dictionary

 

👾  키 key 를 기반으로 값 value을 저장하는 것

       ➡️  '단어'와 '단어의 의미'처럼 사용

👾  딕셔너리는 인덱스가 존재하지 않는 대신 키를 인덱스처럼 사용
       ➡️  키 값을 알면 저장된 값을 확인할 수 있는 구조

 


 

1) 딕셔너리 선언

  ⚡️ 딕셔너리는 중괄호 {} 로 선언하며, 키:값 형태를 쉼표로 연결해서 만든다.

  ⚡️ 키는 문자열, 숫자, 불 등으로 선언 가능

# 딕셔너리 선언 방법
변수 = {
    키:값,
    키:값,
    ...
    키:값
}

# 키값의 자료형이 문자열(str) 이라면 dict() 함수를 이용해서 생성 가능
d = dict(a='apple', b='banana')
print(d)  # {'a': 'apple', 'b': 'banana'}

 

 

💡 딕셔너리 문자열 키와 관련된 오류

    - 키를 문자열로 사용할 때 따옴표를 붙이지 않으면 NameError가 발생한다

dict_key = {
    name : "망고",
    type : "절임"
}
# 이렇게 실행하면 NameError가 발생
# key에 따옴표("")를 붙여줘야 한다

 

2) 딕셔너리 요소 접근

  ⚡️ 리스트처럼 딕셔너리 뒤에 대괄호 []를 입력하고 내부에 인덱스처럼 키를 입력

  ⚡️ 주의할 점은 딕셔너리 선언할 때는 중괄호 {} 사용하지만, 요소에 접근할 때는 대괄호[] 사용

d = {'a': 'apple', 'b': 'banana'}
print(d)  # {'a': 'apple', 'b': 'banana'}
print(type(d))  # <class 'dict'>
print(d['a'])  # apple 
print(d['b'])  # banana

 


 

3) 딕셔너리에 값 추가/제거

 

  ⚡️  딕셔너리에 값을 추가할 때는 키를 기반으로 값을 입력

  ⚡️  setdefault() 메소드를 이용해 추가할 경우 동일한 키가 있는 경우 수정 x

  ⚡️  update() 메소드를 이용해 추가할 경우 동일한 키가 있으면 수정 o

딕셔너리[새로운키] = 새로운 값
dic['watermelon'] = '멜론'
print(dic)  # {'apple': '사과', 'watermelon': '멜론'}

# 존재하는 키값을 이용해서 정의하면, value 수정으로 인식
dic['watermelon'] = '수박'
print(dic)  # {'apple': '사과', 'watermelon': '수박'}

# setdefault() 메소드를 이용한 추가
me = {'name': 'james'}
me.setdefault('age', 20)
print(me)  # {'name': 'james', 'age': 20}
me.setdefault('age', 30) # 동일한 키가 있는 경우에 무시
print(me)  # {'name': 'james', 'age': 20}

# update() 메소드의 경우 존재하는 키값이면 수정
me.update(age=25)
print(me)  # {'name': 'james', 'age': 25}

# update() 메소드의 경우 존재하지 않는 키값이면 추가
me.update(address = 'seoul')
print(me)  # {'name': 'james', 'age': 25, 'address': 'seoul'}

 

 

  ⚡️  del 키워드 or  pop() 메소드를 사용하여 특정 키를 지정하면 해당 요소가 제거

# del 키워드 사용
dic = {'apple' : '사과', 'watermelon' : '수박'}
del dic['apple']  # {'watermelon': '수박'}


# pop() 메소드 사용
dic = {'apple' : '사과', 'watermelon' : '수박'}
dic.pop('watermelon')  # {'apple': '사과'}

 


💡  KeyError 예외

   - 존재하지 않는 키에 접근하면 발생

dic = {}
dic['key']
# -> 존재하지 않는 키이므로 KeyError 발생

 

 


4) 딕셔너리 내부에 키가 있는지 확인

  ⚡️ in 키워드나 get() 함수를 사용해 딕셔너리 내부에 키가 있는지 확인할 수 있다.

# in 키워드 사용
dic = {'a': 'apple', 'b': 'banana', 'c': 'carrot'}
if 'a' in dic:
    print(dic['a'])
else:
    print("존재하지 않는 키에 접근하고 있습니다.)
    
# 실행결과: apple

 

# get() 함수 사용
dic = {'a': 'apple', 'b': 'banana', 'c': 'carrot'}
value = dic.get('b')
print('값 = ', value)  # 값 =  banana

# 존재하지 않는 키 접근
value = dic.get('d')
print('값 = ', value)  
if value == None:
    print('존재하지 않는 키에 접근했습니다.')  
# 실행결과) 
# 값 =  None
# 존재하지 않는 키에 접근했습니다.

 

 

 

 

[ 내용 참고 : IT학원 강의 및 책 '혼자 공부하는 파이썬' ]

+ Recent posts