Python/Basics

Python3 에서 Dictionary 새로운 값 입력하기 및 수정

jinmc 2021. 12. 17. 11:41
반응형

Python에서 Dictionary는 Java의 HashMap과 같은 기능을 하며, 

가장 중요한 Data structure (자료구조) 중 하나입니다.

 

Dictionary 를 만들고 나서 Key Value pair를 넣을 때,

두 가지 방법이 있는데, 그것은 value assignment로 subscription을 이용하여 데이터를 넣는 방법과,

update를 사용하는 방법 두 가지가 있습니다.

 

# dictionary 생성
this_dict = {}

# dictionary value assignment
this_dict["k"] = "v"

# dictionary update method
this_dict.update({"k": "v"})

둘 다 하는 일은 같습니다.

심지어 새로 만드는 것 뿐만 아니라 있던 key value 도 업데이트 되는 형태입니다.

이 스택오버플로우 포스팅에 의하면, value assignment가 훨씬 빠르다고 합니다.

https://stackoverflow.com/questions/15456158/python-dict-update-vs-subscript-to-add-a-single-key-value-pair

 

python dict.update vs. subscript to add a single key/value pair

Every semester I have at least one Python student who uses dict.update() to add a single key/value pair, viz.: mydict.update({'newkey':'newvalue'}) instead of mydict['newkey'] = 'newvalue' I do...

stackoverflow.com

 

이럴거면 update는 왜만든거지.. 

가독성 (readability) 이슈라고 하는데,

잘 모르겠습니다.

$ python -m timeit -s 'd = {"key": "value"}' 'd["key"] = "value"'
10000000 loops, best of 3: 0.0741 usec per loop
$ python -m timeit -s 'd = {"key": "value"}' 'd.update(key="value")'
1000000 loops, best of 3: 0.294 usec per loop
$ python -m timeit -s 'd = {"key": "value"}' 'd.update({"key": "value"})'
1000000 loops, best of 3: 0.461 usec per loop

 

여튼, update function은 앞으로 안쓰는게 좋을것 같습니다.

거의 6배 가깝게 차이가 나네요 .. 

반응형

'Python > Basics' 카테고리의 다른 글

py 파일 pyc로 컴파일 하기  (0) 2021.03.30
Python 변수 개념(namespace, local, global)  (0) 2021.02.05