[ Python ] 딕셔너리 문법 정리
# 딕셔너리 생성 및 요소 추가
▶ dict1 = {"가": "파이썬"} : 생성과 동시에 요소 추가
▶ dict2 = {} : 공백 딕셔너리 생성
→ dict()와 동일함
▶ dict2["가"] = "파이썬" : 요소 추가
★ 주의 ★
dict1 = {"가": "파이썬", "가": "C프로그래밍"}
출력 결과 : {"가": "C프로그래밍"}
→ 생성과 동시에 요소 추가 시 동일한 key값을 갖는 경우 중복저장되지 않음
dict2 = {} # 공백 딕셔너리 생성
dict2["가"] = "파이썬" # 요소 추가
dict2["가"] = "C 프로그래밍"
→ 공백 딕셔너리 생성 후 동일한 key값으로 재저장시 덮어쓰기(value 값이 수정됨)
→ key에 리스트 사용 불가, value에는 아무 자료형이나 상관 없음
# 딕셔너리 요소 삭제
▶ del dic1["가"]
→ [ ] 안에는 key값이 들어감
→ 해당 키가 없는 경우 오류가 발생하므로 아래와 같이 처리
if "가" in dic1: # 해당 key가 딕셔너리에 있는지 확인
del dic1["가"]
▶ dic1.pop(key) : key에 대응하는 value값을 반환하고 삭제
→ 해당 key가 없으면 오류 발생
if "가" in dict:
print(dic1.pop("가"))
▶ dic1.clear() : key와 value 모두 삭제
# 딕셔너리 key, value 추출
▶ 딕셔너리.keys() : key값들만 리스트 형태로 추출하지만 진정한 리스트는 아님
dklist = dic1.keys()
print(dklist) => dict_keys(["가"])
▶ 딕셔너리.values() : value값들만 리스트 형태로 추출하지만 진정한 리스트는 아님
dvlist = dic1.values()
print(dvlist) => dict_values(["파이썬"])
★ 주의 : 리스트 형태(시퀀스)를 가지고 있지만 실제 리스트는 아님 ★
▶ key_list = list(dic1.keys()) : key 값들만 따로 리스트로 저장해서 사용하고자 하는 경우
▶ value_list = list(dic1.values()) : value 값들만 따로 리스트로 저장해서 사용하고자 하는 경우
▶ dict_keys()와 list() 사용의 차이
: dict_keys는 리스트 형태(시퀀스)를 가지고 있고 리스트처럼 사용 가능(시퀀스이므로 반복문에서 사용 가능),
→ 하지만 list()로 생성한 리스트와는 다르게 인덱싱이나 리스트 관련 함수를 사용할 수 없음(ex. append, insert, count 등)
▶ 딕셔너리.get(key) : 해당 key가 없으면 None을 반환
dic1.get("가") => "파이썬"
dic1.get("나") => 아무것도 출력 안 됨
▶ 딕셔너리[key] : 해당 key가 없으면 오류 발생
dic1["가"] => "파이썬"
dic1["나"] => KeyError
if "나" in dic1:
print(dic1["나"])
▶ 딕셔너리.get(key, default_value) : 해당 key가 없을 때 default_value를 대신 가져옴
dic1.get("나", "C프로그래밍")
▶ dic1.items() : key와 value의 쌍을 튜플로 반환