[Data type] Dictionary

고보·2024년 1월 26일

1 Dictionary

  • a = {key1:value1, key2:value2, ...}
    b = dict(key='value', ...})
    c = dict([[key, value], [key, value]])
    d = {}
  • key는 변하지 않는 고유한 값
    • 리스트, 딕셔너리, 세트 등은 변하기 때문에 사용 불가/문자형, 숫자, 불, 튜플 섞어서 사용 가능
    • 중복되는 값은 당연히 안된다.
    • 파이썬에서 1==True, 0==False 취급
  • 딕셔너리는 sequence가 아니고, 그러므로 인덱싱 슬라이싱은 불가능하다. 대신 Key:Value 1:1 매칭으로 key를 통해 Value 접근.
    • 변수명[key]: value (없는 key 입력 시 에러)
    • 변수명[key] = new value: (없는 key 입력 시 새로운 key:value 추가)
    • 특정 key, value 삭제: del 변수명[key]
    • 특정 key 확인: print(<키> in <변수명>) print(<키> in <변수명>).keys()
    • 특정 value 확인: print(<값> in <변수명>.values())

2 관련 함수, 메소드

  • 딕셔너리.keys() 딕셔너리.values(): key와 value만 return. 데이터타입이 dict_keys, dict_values라는 객체기 때문에, 리스트 처럼 쓰고 싶으면 다시 리스트로 처리해야 한다.
  • 딕셔너리.items(): (key, value) 튜플 쌍으로 묶은 dict_items 객체로 리턴한다.
discount_rates = {key1:val1, ...}
for i, k in discount_rates.items():
  • 딕셔너리.clear(): key, value 모두 지우기.
  • 딕셔너리.get(키): 키에 대응되는 value 리턴.
  • dict.fromkeys(키iterable, 값iterable): iterable을 dict로 만드는 것. 여기서 값iterable은 옵션으로 안넣으면 None 할당 => 중복값 없애는데 사용 가능

3 활용 방법

  • 1 dict함수와 zip 함수 이용
    dict(zip([key리스트], [value리스트]))
  • 2 value가 숫자일 때 변수명[키] += 1 과 같은 연산 가능
  • 3 중복값 없애기
    ''.join(dict.fromkeys(my_string))
profile
일본에서 일하는 게임 기획자. 시시해서 죽어버리지 않게, 재밌고 의미 있는 컨텐츠에 관심 있습니다. 그 도구로 데이터, AI도 찝적댑니다.

0개의 댓글