회고

[24.06.01] 99클럽 μ½”ν…Œ μŠ€ν„°λ”” 13일차 TIL - OrderedDict

bbooo 2024. 6. 1. 23:29
728x90
πŸ’‘ Python 3.6 μ΄ν›„λ‘œλŠ” Dictionary μžμ²΄μ—μ„œ μˆœμ„œλ₯Ό 보μž₯ν•©λ‹ˆλ‹€.

1. OrderedDict

Python 3.6 이전 λ²„μ „μ—μ„œλŠ” λ”•μ…”λ„ˆλ¦¬μ˜ μž…λ ₯된 μˆœμ„œλ₯Ό 보μž₯ν•˜μ§€ μ•Šμ•˜λ‹€.

# python 3.5 : μž…λ ₯된 μˆœμ„œλ₯Ό 보μž₯ν•˜μ§€ μ•ŠμŒ.
>>>> dict_3_5 = {}
>>>> dict_3_5['a'] = 1
>>>> dict_3_5['b'] = 2
>>>> print(dict_3_5)
{'b': 2, 'a' : 1}

# python 3.6 이후 : μž…λ ₯된 μˆœμ„œλ₯Ό 보μž₯함.
>>>> dict_3_6 = {}
>>>> dict_3_6['a'] = 1
>>>> dict_3_6['b'] = 2
>>>> print(dict_3_6)
{'a': 1, 'b' : 2}

3.6 버전 μ΄μ „μ˜ νŒŒμ΄μ¬μ—μ„œλŠ” λ”•μ…”λ„ˆλ¦¬μ˜ μˆœμ„œλ₯Ό 보μž₯ν•  ν•„μš”κ°€ μžˆμ„ 땐 OrderedDictλ₯Ό ν™œμš©ν•΄μ•Όλ§Œ ν–ˆλ‹€.

# μˆœμ„œλ₯Ό 보μž₯ν•˜λŠ” OrderedDict
>>>> from collections import OrderedDict
>>>> ordered_dict = OrderedDict()
>>>> ordered_dict['a'] = 1
>>>> ordered_dict['b'] = 2
>>>> print(ordered_dict)
OrderedDict([('a',1), ('b',2)])

κ·Έλ ‡λ‹€λ©΄ 3.6 μ΄ν›„λ‘œλŠ” OrderedDictλ₯Ό ν™œμš©ν•  ν•„μš”κ°€ μ—†μ„κΉŒ?

κ·Έλ ‡μ§€λŠ” μ•Šλ‹€. λ”•μ…”λ„ˆλ¦¬ κ°„μ˜ 동등성을 확인할 λ•Œ OrderedDictλŠ” μˆœμ„œκΉŒμ§€ λ™λ“±ν•œμ§€ ν™•μΈν•˜κΈ° λ•Œλ¬Έμ—, μˆœμ„œκΉŒμ§€ λ™λ“±ν•΄μ•Όν•˜λŠ”μ§€ 비ꡐλ₯Ό ν•΄μ•Όν• λ•Œ OrderedDictλ₯Ό ν™œμš©ν•  수 μžˆλ‹€.

# 3.6 μ΄ν›„μ˜ Dict
>>>> dict1 = {'a':1, 'b':2}
>>>> dict2 = {'b':2, 'a':1}
>>>> print(dict1==dict2)
True

# 3.6 μ΄ν›„μ˜ OrderedDict
>>>> from collections import OrderedDict
>>>> print(ordered_dict1)
OrderedDict([('a', 1), ('b', 2)])

>>>> print(ordered_dict2)
OrderedDict([('b', 2), ('a', 1)])

>>>> print(ordered_dict1 == ordered_dict2)
False

 

728x90