본문 바로가기
Python

[Python] Dictionary's methods

by ds31x 2023. 7. 11.

Dictionary's methods

비우기

dic.clear()
  • Dictionary instance (or object) dic을 전부 비움.
  • 모든 key-value 쌍들이 제거됨.

값 얻어오기

dic.get(key)
  • key에 해당하는 키를 가지고 있는 value를 반환. 만약 없다면 None이 반환됨.
  • dic[key]와 같이 square bracket을 통한 indexing보다 권장됨. (키를 통한 indexing은 없을 시 error발생.)

dic.get(key,default_value)
  • key에 해당하는 키를 가지고 있는 value를 반환.
  • 만약 없다면 default_value를 반환.

빼내면서 값 얻어오기

dic.pop(key)
  • key에 해당하는 value를 반환하고, dic에서 해당 key-pair를 제거함.
  • dic에서 빼내는 동작에 해당함 (pop)

dic.pop(key, default_value)
  • get의 경우와 유사하게 pop의 동작을 하는 건 같은데 해당 키에 해당하는 item이 없을 시 default_value를 반환.

추가하면서 값 얻어오기

dic.setdefault(key)
  • key에 해당하는 value를 반환.

dic.setdefault(key,value)
  • key에 해당하는 value가 있으면 dic.setdefault(key)와 같음.
  • key에 해당하는 key-value 쌍이 없을 경우, value를 반환해주면서 동시에 key를 키로 가지고 value를 value로 가지는 key-value pair를 dic에 추가.

다른 dictionary object로 갱신

dic.update(other_dic)
  • dicother_dic으로 업데이트.
  • other_dic과 같은 키를 가지는 key-value쌍은 other_dic기준으로 변경되고,
  • dic에는 없던 other_dic의 key-value 쌍은 추가되며,
  • dic에만 있던 키의 경우에는 그대로 유지됨.

Loop 관련

기본적으로 for문으로 dictionary를 사용할 경우, key들이 loop varaible에 할당됨.

for k in dic:
    print(f'key is {k}')

dictionary에 대한 view object 얻기

  • view object란 대상이 되는 object를 변경시키지 않으면서 보다 효과적으로 현재 대상 object의 상태를 알 수 있게 해주는 객체를 가르킴.
  • dictionary에 대한 view object들은 모두 iterable object임.

https://dsaint31.tistory.com/entry/Python-Iterable-and-Iterator-puls-Generator

 

[Python] Iterable and Iterator, plus Generator

Iterable for 문에서 in 뒤에 위치하여 iterate (반복, 순회)가 가능한 object를 가르킴. __iter__() 라는 special method를 구현하고 있으며, 이를 통해 자신에 대한 iterator object를 반환할 수 있음. __iter__() special

dsaint31.tistory.com

 

명시적으로 key에 대해서 loop가 구성될지, value에 대해 구성될지 등은 다음의 method들을 통해 지정 가능함.

dic.keys()
  • dic의 키들로 구성된 dict_keys (generator의 일종이라고 보면 됨)를 반환함.
  • for 문등을 통해 iteration처리가능.
  • for k in dic.keys(): 의 loop 를 만들 수 있음.
  • list로 변환할 수도 있음.
dic.values()
  • dic의 값들로 구성된 dict_values (generator의 일종이라고 보면 됨)를 반환함.
  • for 문등을 통해 iteration처리가능.
  • for v in dic.values(): 의 loop 를 만들 수 있음.
  • list로 변환할 수도 있음.
dic.items()
  • dic의 key-value 쌍에 해당하는 tuple들을 item으로 가지는 dict_items (generator의 일종이라고 보면 됨)를 반환함.
  • for 문등을 통해 iteration처리가능.
  • for k, v in dic.items(): 의 loop 를 만들 수 있음.
  • list로 변환할 수도 있음.