2022. 5. 5. 22:52ใBackend/๐ Python
dict ์ fromkeys() ๋ฉ์๋
- ๋์ ๋๋ฆฌ ์์ฑ ์, ์ด๋ฏธ key ๊ฐ์ด ์ ํด์ง ๊ฒฝ์ฐ ํธ๋ฆฌํ๊ฒ ๋์ ๋๋ฆฌ๋ฅผ ์์ฑํ ์ ์๋ค.
- seq
: ๋์
๋๋ฆฌ์ key ๊ฐ์ด ๋ iterable ๋ก, ์ฆ dictionary ์ key ๋ชฉ๋ก์ด๋ค.
- value
: seq ์ ๊ฐ key ์ ํ ๋น๋ value (๊ฐ) ์๋ฏธ
# ์ ์
@staticmethod # known case
def fromkeys(*args, **kwargs): # real signature unknown
""" Create a new dictionary with keys from iterable and values set to value. """
pass
# ์ฌ์ฉ๋ฒ
value = 0
seq = [1, 2, 3]
dictionary = dict.fromkeys(seq, value)
>>> {1 : 0, 2 : 0, 3 : 0}
- ๋ฐฑ์ค์ ๊ฒฝ์ฐ input ๊ฐ์ผ๋ก ๋์ ๋๋ฆฌ๋ฅผ ๋ง๋ค ๋๊ฐ ์๋๋ฐ, ์ด๋ด ๊ฒฝ์ฐ seq ์๋ฆฌ์ input() ์ ๋ฃ์ด์ฃผ๋ฉด ์์ฝ๊ฒ ๋์ ๋๋ฆฌ๋ฅผ ์์ฑํ ์ ์๋ค.
bisect.bisect_left(), bisect_right()
// ์ ์
bisect_left(a, x, lo=0, hi=len(a), *, key=None)
// ์ฌ์ฉ์
find = bisect_left(list, value)
list ๋ผ๋ ์ ๋ ฌ๋ ๋ฐฐ์ด์, ์ด๋ถํ์์ผ๋ก value ๋ฅผ ์ฝ์ ํ ์ธ๋ฑ์ค๋ฅผ ๋ฐํ(= find)ํ๋ค.
left ๊ฐ ์ ๋ฏธ์ฌ๋ก ๋ถ์ ์ด์ ๋ ์ผ์ชฝ ์ธ๋ฑ์ค๋ฅผ ๊ตฌํ๊ธฐ ๋๋ฌธ์ด๋ค.
from bisect import bisect_left, bisect_right
arr = [0, 1, 2, 3, 4]
value = 2
left = bisect_left(arr, value)
right = bisect_right(arr, value)
"""
left : 2
right : 3
"""
์ด๋ถํ์์ผ๋ก arr ์์ 2 ๋ฅผ ์ฐพ์ผ๋ฉด, 2๋ฒ์งธ ์ธ๋ฑ์ค์์ ์ฐพ์ ์ ์๋ค.
bisect_left
: ํด๋น ๊ฐ(=2) ์ด ์ด๋ฏธ arr ์ ์๋ ๊ฒฝ์ฐ, value ์ ์ฝ์
์์น๋ ๊ธฐ์กด ํญ๋ชฉ์ ์ผ์ชฝ์ด ๋๋ค.
bisect_right
: ํด๋น ๊ฐ์ ์ค๋ฅธ์ชฝ ์ธ๋ฑ์ค์ ์ฝ์
ํ๋ฏ๋ก, 3๋ฒ์งธ ์ธ๋ฑ์ค๊ฐ find ๋ก ๋ฐํ ๋๋ค.