์ ๋ ฌ ๊ธฐ์ค ์ ํ ์ค๋ฆ ์ฐจ์ ์ ๋ ฌ nums = [[3, 4], [1, 1], [1, -1], [2, 2], [3, 3]] sort(nums, key=lambda x: (x[0], x[1])) ์ ๋ ฌํ๊ณ ์ ํ๋ ๊ธฐ์ค์ด ์ฌ๋ฌ ๊ฐ์ธ ๊ฒฝ์ฐ ์์ ๊ฐ์ด ์ฐ์ ์ ์ผ๋ก ์ ๋ ฌํ ๊ธฐ์ค์ ์ ํํ์ฌ ์ ๋ ฌํ ์ ์๋ค. ๋ฐ๋๋ก `x: (x[1], x[0])`๊ฐ ๋๋ค๋ฉด 2๋ฒ์งธ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ์ ํ๊ฒ ๋๋ค. ๋ด๋ฆผ ์ฐจ์ ์ ๋ ฌ nums = [[3, 4], [1, 1], [1, -1], [2, 2], [3, 3]] sort(nums, key=lambda x: (-x[0], x[1])) ์ ๋ ฌํ๊ณ ์ ํ๋ ๊ธฐ์ค์ ํ๋๋ ๋ด๋ฆผ์ฐจ์, ํ๋๋ ์ค๋ฆ ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ ์ ํ๋ค๋ฉด ์์ ๊ฐ์ด `-`๋ฅผ ๋ถ์ฌ์ฃผ๋ฉด ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ ์ ์๋ค. ์ค๋ณต๋๋ ๊ฐ์ด ์..
all, any # ์ ์ ํ ์์๋ ์๋์ง๋ง, any์ ๊ฒฝ์ฐ iterable ์ค ํ๋๋ผ๋ ๋ง์กฑํ์ง ์๋ ๊ฒฝ์ฐ # all์ ๊ฒฝ์ฐ iterable์์ ๋ชจ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์กฑํ๋ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์ ์ ์๋ค. if any(10 > x for x in list): return False else all(10 > x for x in list): return True ํ๋ ฌ ๋๊ฐ์ ์ธ๋ฑ์ค def diagonal(matrix): # โ left_right = [matrix[i][j] for i in range(len(matrix))] # โ right_left = [matrix[i][len(matrix) - i - 1] for i in range(len(matrix))] ํ๋ ฌ ์ ํ # ์ ์ฒด๋ list ํ์์ด์ง๋ง, ํ๋์ ํ์ ์ ํํ..
permutations from itertools import permutations nums = [num + 1 for num in range(3)] for cases in permutations(nums, 2): print(cases, end=' ') permutations(iterater, reapeat)๋ฅผ ํตํด ์์ด์ ๊ตฌํ ์ ์๋ค. ๊ฒฐ๊ณผ : (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2), ๊ฐ๋ฅํ ๋ชจ๋ ์์๋ก ๋ฐ๋ณต์ ํ์ง ์์ combinations from itertools import combinations nums = [num + 1 for num in range(3)] for cases in combinations(nums, 2): print(cases, end..
namedtuple from collections import namedtuple person_info = namedtuple("info", "name age address") info = person_info("kim", 12, "111-11") info.name, info.age, info.address์ ๊ฐ์ด ์ ๊ทผ ํ ์ ์๋ค. name, age, address๋ฅผ ์ธ๋ฑ์ค 0 ~ 2(ex: info[0])๋ก๋ ์ ๊ทผํ ์ ์๋ค. defaultdict ๋์ ๋๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค ๋ณด๋ฉด, ์ด๋ค ํค์ ๋ํ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ์ ๋ํ ์ฒ๋ฆฌ๋ฅผ ํด์ผํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ๋์ ๋๋ฆฌ์ ๋ํ ์ด๊ธฐ๊ฐ์ ์ง์ ํ๊ณ ์ ํ ๋ defualtdict์ ์ฌ์ฉํ ์ ์๋ค. def cnt_word(words): cnt = {} for word in ..
heapq ์ด์งํธ๋ฆฌ ๊ธฐ๋ฐ์ ์ต์ ํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ๋ง์ฝ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ๋ ฌ๋ ์ํ๋ก ์ ์งํ ํ์๊ฐ ์์ ๊ฒฝ์ฐ ๊ณ์ํด์ ์ ๋ ฌ์ ํ๋ ๊ฒ ๋ณด๋ค๋, heapifyํ๋ ๊ฒ์ด ํจ์จ์ ์ด๋ค. import heapq heap = [] heapq.heappush(heap, 7) heapq.heappush(heap, 1) heapq.heappush(heap, 5) heapq.heappush(heap, 3) heapq.heappop(heap) ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค๊ณ ๋ฆฌ์คํธ์ ๊ฐ์ ์ฝ์ ์ญ์ ํ ๊ฒฝ์ฐ, heapq์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ต์ํ ์ฑ์ง์ ๊ฐ์ง๋ค. ์ต์ํ์ ๊ฒฝ์ฐ, ๋ชจ๋ ์์(k)๋ ์์ ์์๋ค(2k+1, 2k+2) ๋ณด๋ค ํฌ๊ธฐ๊ฐ ์๋ค. ๋ฐ๋ผ์ ํด๋น ์์ ๋ [1, 3, 5, 7]๋ก ์ ๋ ฌ๋์ด ์ต์ํ์ด ์ ์ง๋๊ฒ ๋๋ค. h..
๋ฌด์์ ํ์ฉํ๋ฉด ์ข์๊น? ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ๊ฐ ์ธ์ด๋ง๋ค ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ด ์กฐ๊ธ์ฉ ์์ดํ๋ค. ํ์ด์ฌ์ ๊ฒฝ์ฐ ๋ค์ํ built-in function์ ํตํด ์ฝ๋๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ์์ฑํ๊ณ , ๋น ๋ฅด๊ฒ ์์ฑํ ์ ์๋ ์ฅ์ ์ด ์๋ค. ์ด๋ฅผ ์ ์์งํ๋ค๋ฉด, ์ฝ๋ฉ ํ ์คํธ์ ๊ฐ์ ์ํฉ์์ ํจ์จ์ ์ผ๋ก ๋ฌธ์ ์ ์ ๊ทผํ ์ ์์ ๊ฒ์ด๋ค. List ๋ด ๊ฐ ์์ ๋ณ๊ฒฝ ๊ธฐ๋ณธ ์ ์ผ๋ก ๋ฆฌ์คํธ๋ฅผ ํ์ฉํ๊ธฐ ์ํด์๋ ๋ฆฌ์คํธ์ ๊ฐ์ ์ถ๊ฐ, ์ญ์ , ๋ณ๊ฒฝ์ด ํ์ํ๋ค. (๊ฐ ํจ์๋ค์ ๋ฐํ๊ฐ์ด ์กด์ฌํ์ง ์๋๋ค.) 1. append # ๋ฆฌ์คํธ ๋ง์ง๋ง ์ธ๋ฑ์ค ๋ค์ ๊ฐ ์ฝ์ list.append(item) 2. extend # ๋ฆฌ์คํธ1์ ๋ฆฌ์คํธ2์ ์์๋ค์ ๊ฐ์ ธ์ด list1.extend(list2) 3. insert # ์ํ๋ ์ธ๋ฑ์ค ์์น์ ๊ฐ์ ์ฝ์ list.i..