Language/Python

[ Python ] 딕셔너리 문법 정리

곽수진 2021. 9. 27. 18:17
반응형

# 딕셔너리 생성 및 요소 추가

 

▶ 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의 쌍을 튜플로 반환

반응형