파이썬 문법

파이썬 딕셔너리 get() update() popitem()

토리쟁이 2024. 3. 15. 02:12

 

 

 

파이썬의 딕셔너리 자료형에서 키에 따라 값을 꺼내는 방법에는 2가지가 있다.

다음과 같은 딕셔너리가 있다고 가정해보자.

d = {'a': 1, 'b': 2, 'c': 3}

 

 

1. "키"값으로 값 꺼내오기

print(d['a'])  # 1

 

 

2. get() 함수 사용하기

print(d.get('a'))   # 1

 

 

위 2가지 방법 모두 딕셔너리의 값을 가져올 수 있지만, 큰 차이점이 존재한다.

 

 

만약 키 값으로 딕셔너리에 존재하지 않는 키를 넣을 경우 

방법1은 KeyError가 발생하지만,  방법2는 에러 발생이 되지 않고 none을 리턴한다.

 

방법2에서 해당되는 키가 없을 경우, default로 리턴할 값을 지정할 수도 있다. get() 함수의 2번째 인자로 넣으면 된다.

print(d.get('d', 4))    # 4

 

 

 


 

 

딕셔너리에서 키의 값을 수정하는 함수인 update() 가 있다.

d.update(a=100)
print(d)  # {'a': 100, 'b': 2, 'c': 3}

 

 

여러 개를 한 번에 update할 수도 있다.

d.update(a=1000, c=3000)
print(d)  # {'a': 1000, 'b': 2, 'c': 3000}

 

 

만약, update()의 인자로 존재하지 않는 키 값이 들어간다면, 에러는 발생하지 않고 해당 키-값이 딕셔너리에 추가된다.

d.update(a=1000, c=3000, d=100)
print(d)  # {'a': 1000, 'b': 2, 'c': 3000, 'd': 100}

 

 

 


 

딕셔너리의 가장 마지막 키-값 쌍을 삭제하는 함수 popitem()이 있다.

print(d.popitem())  # ('d', 100)
print(d.popitem()[1])  # 3000

 

(단, 파이썬 3.6 이상부터 지원되며 그 이전 버전은 임의의 쌍이 삭제된다.)

 

 


참고

 

https://junior-datalist.tistory.com/203

 

https://velog.io/@jhon3242/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%94%95%EC%85%94%EB%84%88%EB%A6%AC-%EC%9D%91%EC%9A%A9%ED%95%98%EA%B8%B0