from itertools
combinations_with_replacement(iter, r) : A~E 5๋ช ์ ํ๋ณด๊ฐ ์๋ค. ์ค๋ณต์ ํ์ฉํด 2๋ช ์ ๋ํ๋ฅผ ๋ฝ๋ ๋ฐฉ๋ฒ
from itertools import combinations_with_replacement
list(combinations_with_replacement('ABC', 2)) #๊ฒฐ๊ณผ : 'AA' 'AB' 'AC' 'BB' 'BC' 'CC' product(iter, r) : 1~5 ์ซ์์นด๋๊ฐ ์๋ค. ์ค๋ณต์ ํ์ฉํด 2์๋ฆฌ์๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ.
from itertools import product
list(product('ABC', repeat=2)) #๊ฒฐ๊ณผ : 'AA' 'AB' 'AC' 'BA' 'BB' 'BC' 'CA' 'CB' 'CC'import heapq
heapq.heapify( ๋ฆฌ์คํธ )
a = [4,1,3,10]
heapq.heapify(a) #๊ฒฐ๊ณผ: a๋ [1, 4, 3, 10]-> ํ์์ ์ธ๋ฑ์ค 0์ด ์ต์๊ฐ์ด๋ผ๊ณ ํด์, ์ธ๋ฑ์ค 1์ ๋ ๋ฒ์งธ, ์ธ๋ฑ์ค 2์ ์ธ ๋ฒ์งธ๋ก ์์ ์์๊ฐ ์๋ ๊ฒ์ด ์๋๋ค. ๋ ๋ฒ์งธ๋ก ์์ ์์๋ฅผ ์ป์ผ๋ ค๋ฉด heappop()์ ํตํด ์ต์๊ฐ์ ์ญ์ ํ ํ heap[0]๋ก ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๊ฑฐ๋, ์ธ๋ฑ์ค 1์ ์ธ๋ฑ์ค 2์ ๋น๊ตํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํด์ผ ํ๋ค. (์ต์๊ฐ๋ง ๋ณด์ฅ)
from collections import defaultdict
defaultdict(int)
defaultdict(list)๋์ ๋๋ฆฌ์ items() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ฃผ๋ฉด {"key" : value}์ ํํ๋ฅผ [(key, value)]์ ํํ๋ก ๋ง๋ค์ด ์ค๋ค.
d[k] = v # (k, v) ์ถ๊ฐ
d.pop(k) # key๊ฐ k์ธ ์ ์ฐพ์ ์ ๊ฑฐ
k in d # ํ์ฌ hashmap์ key๊ฐ k์ธ ์์ด ์๋์ง ํ์ธkey ๊ฐ๋ฅ type immutableํ ๊ฐ -> int, char ๋ฑ์ primitive type๊ณผ string, tuple ๋ฑ ๊ฐ๋ฅ, mutableํ list, dict ๋ฑ์ type์ ๊ฐ๋ณ์ ์ด๊ธฐ ๋๋ฌธ์ ๋ถ๊ฐ
print(d.items()) #dict_items([(1, 3), (2, 4), (-1, 6)])
print(d.keys()) #dict_keys([1, 2, -1])
print(d.values()) #dict_values([3, 4, 6])sorted(d) #['blue', 'green', 'red']: list ํํ๋ก returnsorted(d.items(), key=lambda x : x[1]) #[('red', 3), ('blue', 3), ('green', 1)]: list ํํ๋ก returnfor key in d:
d[key].sort()s=set()
s.add(e) # ๋ฐ์ดํฐ e ์ถ๊ฐ
s.remove(e) # ๋ฐ์ดํฐ ์ค ์ซ์ e ์ฐพ์ ์ ๊ฑฐ
e in s # ํ์ฌ hashset์ ์ซ์ e๊ฐ ๋ค์ด ์๋์ง ํ์ธ# a: {1,2,6}, b: {2,6,9}
a|b #{1,2,6,9}
a&b #{2,6}
a-b #{1}์ด์ง ํ์ ๋ชจ๋
ํด๋น ๊ฐ์ด ์์นํ ๋ง์ง๋ง index ํ์
import bisect
mylist = [1, 2, 3, 3, 7, 9, 11, 33]
print(bisect.bisect(mylist, 3)) # 4 (bisect = bisect_right)target ๊ฐ ์กด์ฌํ์ง ์์๋ index ์ถ๋ ฅํ๋ฏ๋ก target ๊ฐ๊ณผ ๋์ผํ์ง checkํ๋ ๋ก์ง ํ์์
for _ in range(m):
target = int(input())
index = bisect.bisect_right(lst, target)
if lst[index-1] == target:
print(index)
else:
print(-1)
import bisect
mylist = [1, 2, 3, 3, 7, 9, 11, 33]
print(bisect.bisect_right(mylist, 3) - bisect.bisect_left(mylist, 3))import math
math.gcd( ์ซ์๋ค )
math.gcd(12,8) //๊ฒฐ๊ณผ: 4์์๊ฐ ๋์ ๋๋ฆฌ ํค๋ก ์ ์ฅ๋๊ณ ๊ฐ์๊ฐ ๋์ ๋๋ฆฌ ๊ฐ์ผ๋ก ์ ์ฅ๋๋ ์ปฌ๋ ์
from collections import Counter
Counter( [๋ฆฌ์คํธ] or [๋ฌธ์์ด] ).most_common( ์ถ๋ ฅ๊ฐฏ์ )
"๋ณ๋ฅ๋ณ".count("๋ณ") #๊ฒฐ๊ณผ: 2๋ฌธ์์ด์ ์ ๋ ฌํ๊ณ ์ถ์ ๋ sortํ ๋ค์์ join์ผ๋ก ๋ฌถ์ด์ค์ผ ํ๋ค. (sortํ๋ฉด ๋ฆฌ์คํธ๋ฅผ ๋ฐํํ๋ค)
orders[i] = "".join(sorted(orders[i]))๋ฌธ์์ด ๊ฐ์ ๋ณ๊ฒฝํ๊ณ ์ถ์๋ list๋ก ๋ณํ ํ idx์ ํด๋นํ๋ ๊ฐ์ ์์ ํ๊ณ join์ผ๋ก ๋ฌถ์ด์ค๋ค.
find() ํจ์๋ ์ผ์ชฝ๋ถํฐ ์ฐพ๊ณ , rfind() ํจ์๋ ์ค๋ฅธ์ชฝ๋ถํฐ ์ฐพ๋๋ค.
- ๋ฌธ์๊ฐ ์๋ค๋ฉด -1์ ๋ฐํ
- ๋ฌธ์๊ฐ ์ฌ๋ฌ ๊ฐ ์๋ค๋ฉด ๋งจ ๋ง์ง๋ง ์ธ๋ฑ์ค ๋ฐํ
"๋ณ๋ฅ๋ณ".find("๋ณ") #๊ฒฐ๊ณผ: 0
"๋ณ๋ฅ๋ณ".rfind("๋ณ") #๊ฒฐ๊ณผ: 2- ๋ฌธ์์ด.swapcase() # ์๋ฌธ์๋ ๋๋ฌธ์๋ก, ๋๋ฌธ์๋ ์๋ฌธ์๋ก ์๋ก ๋ฐ๊ฟ์ฃผ๋ ๋ฉ์๋
"abc".upper() #๊ฒฐ๊ณผ: "ABC"
"ABC".lower() #๊ฒฐ๊ณผ: "abc"
"aBc".swapcase() #๊ฒฐ๊ณผ: "AbC"- ๋ฌธ์์ด.strip()
- ๋ฌธ์์ด.replace(old, new)
- ๋ฌธ์ -> ์์คํค ์ฝ๋ : ord('A')
- ์์คํค ์ฝ๋ -> ๋ฌธ์ : chr(65)
#1. bin(x)[2:]): ๋ด์ฅํจ์ bin ์ฌ์ฉ
#2.
def change_10to2(n):
tmp = []
while n > 0:
tmp.append(str(n%2))
n //= 2
tmp = tmp[::-1]
return tmpint(๋ฌธ์์ด ๊ฐ, n)๊ฐ iterables ์ ์์๋ค์ ๋ชจ์ผ๋ ์ดํฐ๋ ์ดํฐ๋ฅผ ๋ง๋ญ๋๋ค. ํํ์ ์ดํฐ๋ ์ดํฐ๋ฅผ ๋๋ ค์ฃผ๋๋ฐ, i ๋ฒ์งธ ํํ์ ๊ฐ ์ธ์๋ก ์ ๋ฌ๋ ์ํ์ค๋ ์ดํฐ๋ฌ๋ธ์ i ๋ฒ์งธ ์์๋ฅผ ํฌํจํฉ๋๋ค.
list1 = [1, 2, 3, 4]
list2 = [100, 120, 30, 300]
list3 = [392, 2, 33, 1]
answer = []
for number1, number2, number3 in zip(list1, list2, list3):
print(number1 + number2 + number3)animals = ['cat', 'dog', 'lion']
sounds = ['meow', 'woof', 'roar']
answer = dict(zip(animals, sounds)) # {'cat': 'meow', 'dog': 'woof', 'lion': 'roar'}for ๋ฌธ๊ณผ if๋ฌธ์ ํ๋ฒ์
mylist = [3, 2, 6, 7]
answer = [number**2 for number in mylist if number % 2 == 0]flag ๋์ ์ฌ์ฉ. for loop๊ฐ break์์ด ๋น ์ ธ๋์ฌ ๊ฒฝ์ฐ else๋ฌธ ์คํ. continue๋ break ์ฒ๋ผ ๋์ํ์ง ์์.
a = 3
print(f'{a} ์
๋๋ค')๊ฐ์ฅ ํฐ ์ ํํ
inf = int(1e9)
print(inf > inf) #False
print(inf+1 > inf) #Trueimport sys
sys.exit(0)