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학원 강의 및 책 '혼자 공부하는 파이썬' ]
'Programming Language > Python' 카테고리의 다른 글
[Python] while 반복문, break/continue 키워드 (0) | 2024.03.02 |
---|---|
[Python] for 반복문과 range() 함수, 역반복문, 중첩 반복문, 피라미드 생성 (0) | 2024.03.02 |
[Python] for 반복문, 중첩 리스트와 중첩 반복문, 전개연산자 (0) | 2024.03.01 |
[Python] 리스트(list)란, 리스트 연산, 리스트 정렬(sort), in 연산자 (2) | 2024.03.01 |
[Python] 조건문 | if ~ else와 elif 구문, pass 키워드 (0) | 2024.03.01 |