์๋ ํ์ธ์ ! ์ค๋์ ์ฝ๋ฉํ ์คํธ๋ฅผ ์ํ ํ์ด์ ์ด๋ผ๋ ์ฃผ์ ๋ก, ํ์ด์ ์ ์๋ฃํ, ์๋ฃ๊ตฌ์กฐ ๊ตฌํ, ์ ์ถ๋ ฅ ๋ฐฉ์, ๋ํ์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ 6๊ฐ์ง์ ๋ํด ์๊ฐํ๋ ค ํฉ๋๋ค. ์ ๋ ํ๊ธฐ๋ณด๋จ, ํ์์ ๋ฐ๋ผ ctrl+f๋ก ์ฐธ์กฐํ์๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค. ๊ทธ๋ผ ์ค๋๋ ํ์ดํ ๐ฟ
๋ถ๋ณ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ ํ, ์๋ก์ด ๊ฐ์ ํ ๋นํ๋ฉด ์ฐธ์กฐ๊ฐ ์ฌ๋ผ์ง๊ณ , ์๋ก์ด ์ฃผ์๋ฅผ ํ ๋น ๋ฐ๋๋ค.
a = 1
b = a
print(a)# 1
b = 2
print(a)# 1
๊ฐ๋ณ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ ํ, ์๋ก์ด ๊ฐ์ ํ ๋นํ๋ฉด ์ฐธ์กฐ๊ฐ ์ ์ง๋๋ค. ์๋, ์ฐธ์กฐ์ ์ฐธ์กฐ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
์ฐธ์กฐ์ ์ฐธ์กฐ : a๋ ๋ฆฌ์คํธ์ ๋ํ ์ฐธ์กฐ, ๊ทธ๋ ๋ค๋ฉด b๋ (a๋ ๋ฆฌ์คํธ์ ๋ํ ์ฐธ์กฐ)์ ์ฐธ์กฐ
a = [1,2,3]
b = a
print(a) # [1, 2, 3]
b[0] = 0
print(a) # [0, 2, 3]
์ค๋ณต๋ ๊ฐ์ ๊ฐ์ง์ง ์์
์์๊ฐ ์์
๊ฐ๋ณ๊ฐ์ฒด์ ํด๋น๋๋ค
dict์ฒ๋ผ {}๋ฅผ ์ฌ์ฉํ๋ค.
d = { 0: 'v0', 1: 'v1', 2: 'v2'}
print(d[2]) # v2
s = {2, 6, 1, 1, 4, 1}
# print(s[2]) TypeError
๊ฐ๋ณ๊ฐ์ฒด์ ํด๋น๋๋ค.
ํค/ ๊ฐ ๊ตฌ์กฐ๋ก ์ด๋ค์ง
ํด์ ํ ์ด๋ธ๋ก ๊ตฌํ๋จ, ์๋ฐ์ hashmap์ ๋์๋จ
์ ๋ ฅ ์์ ์ ์ง 3.7๋ถํฐ,,^^
์์ฑ์
dict()d = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
d['k4'] = 'v4'
a = {2: 6, 1: 1, 4: 1}
print(a[2]) # 6
๋ฐ๋ณต
for k,v in a.items():
์ญ์
del a['k1']
defaultdict : ์๋ ํค์ ๋ํด์, ๋ํดํธ ๊ฐ์ ๊ฐ์ง๊ณ ์์
counter : ์์ดํ ์ ๋ํ ๊ฐ์๋ฅผ dict์ผ๋ก ๋ฆฌํดํจ
๋ฆฌ์คํธ, ํํ, ์งํฉ ๋ค ์ฌ์ฉํ ์ ์์
๋์ ๋๋ฆฌ๋ ๊ทธ๋ฅ ๊ณ์ฐ ์์ด ๋์ ๋๋ฆฌ ๊ทธ๋๋ก ๋ฆฌํด
a = [1,2,2,2,2,2,2,4]
b = collections.Counter(a)
print(a) # [1, 2, 2, 2, 2, 2, 2, 4]
print(b) # Counter({2: 6, 1: 1, 4: 1})
์์ ๋กญ๊ฒ ๊ฐ์ ์ถ๊ฐ, ์ญ์ ํ ์ ์๋ ๋์ ๋ฐฐ์ด, mutable list
๊ฐ๋ณ ๊ฐ์ฒด์ ํด๋น๋๋ค.
์ฌ์ค์ ์คํ์ ์ฌ์ฉํ ์ง, ํ๋ฅผ ์ฌ์ฉํ ์ง ์๊ฐ์ํด๋, ์ ๋งํ ์ฐ์ฐ์ ์ ๋ถ ์ง์ํ๋ค.
์ ๋ ฅ ์์ ์ ์ง, ๋ณ๊ฒฝ๊ฐ๋ฅ, ์๋ฃํ์ ์์ด์ ์ฝ์ ๊ฐ๋ฅ
์์ฑ์
a = [2, 6, 1, 1, 4, 1]
print(a[2]) # 1
list()l = []
๋ํ ์ฌ๋ผ์ด์ฑ ๋ฌธ๋ฒ์ผ๋ก, ๋ถํ์ํ ๋ฐฐ์ด ์ํ๊ฐ ํ์์๋ค. ๋ฐ๋ณต๋ฌธ ์ ์ฝ
์ฌ๋ผ์ด์ฑ
[1:4] # ๊ฐ 3๊ฐ, 1~3[:2] # ๊ฐ 2๊ฐ, 0~1[1:4:2] # ๊ฐ 2๊ฐ, 1(1+0)๊ณผ 3(1+2)
์ค๊ฐ์ ์๋ ๊ฐ์ ์ญ์ ํ ์ ์๋ค.
์ธ๋ฑ์ค๋ก ์ญ์
del a[1]
๊ฐ์ผ๋ก ์ญ์
a.remove(2)
์ธ๋ฑ์ค๋ก ์ญ์ ๋ฐ ๋ฆฌํด
a.pop(3)
list์ ๋ถ๋ณ ์ํ์ค ๋ฒ์ ์ด๋ผ ์๊ฐํ๋ฉด ์ฝ๋ค. list์ ๊ฑฐ์ ํก์ฌํ๋ค.
๋ถ๋ณ๊ฐ์ฒด์ ํด๋น๋๋ค.
์์ฑ์
t = (1, 2, 2, 2, 2, 2, 2, 4)
print(t[2]) # 2
list
l = list()l2 = [1,2,3,3]
print(l2[3]) # 3
tuple
t = tuple()t2 = (1,2,3,3)
print(t2[3]) # 3
set
s = set()s2 = {1,2,3}s3 = {1,2,3,3,3} # {1,2,3}์ด ๋จ
# print(s2[3]) TypeError
dict
d = dict()s2 = {0: 0, 1: 1, 'two': 'two', 3: '3'}
print(s2)# {0: 0, 1: 1, 3: '3', 'two': 'two'}๋ก ์ ๋ ฌ์ด ๋จ
print(s2[3]) # 3
print(s2['two']) # two
Queue๋ collections์ deque๋ฅผ ์ฌ์ฉํ๋ค.
from collections import deque
importํ์ง ์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ํจ์๋ค์ด๋ค.
a = list(map(int, input().split()))
print(a)
print(f"a์ ๊ฐ์ {a}์
๋๋ค.")
result = eval("(3+5)*7")
print(result) # 56
result = sum(list(1,2,3))
print(result) # 6
result = sorted(list(1,3,2))print(result) # [1,2,3]
result = sorted(list(1,3,2), reverse = True)print(result) # [3,2,1]
lambda๋ก ์ ๋ ฌ ๊ธฐ์ค ์ ์ํ๊ธฐ
result = sorted([('a',1),('b',3),('c',2)], key = lambda x: x[0],
reverse = True)
print(result) # [('c', 2), ('b', 3), ('a', 1)]
result = sorted([('a',1),('b',3),('c',2)], key = lambda x: x[1],
reverse = True)
print(result) # [('b', 3), ('c', 2), ('a', 1)]
๋ฐ๋ณต๋๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. iterable ๊ฐ์ฒด ์ฒ๋ฆฌ
from itertools import permutations
from itertools import *
data = ['A', 'B', 'C']
result = list(permutations(data,3))
print(result)
# [('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]
from itertools import *
data = ['A', 'B', 'C']
result = list(combinations(data,2))
print(result)
# [('A', 'B'), ('A', 'C'), ('B', 'C')]
from itertools import *
data = ['A', 'B', 'C']
result = list(product(data,repeat = 2)
print(result)
# [('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'B'), ('B', 'C'), ('C', 'A'), ('C', 'B'), ('C', 'C')]
from itertools import *
data = ['A', 'B', 'C']
result = list(combinations_with_replacement(data,2))
print(result)
# [('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'B'), ('B', 'C'), ('C', 'C')]
from collections import
iterable ๊ฐ์ฒด์ฉ โผ
ํ๋ฅผ ๊ตฌํํ ๋ ์ฌ์ฉ
q = deque([2,3,4])
q.append(5)
print(q.popleft()) # 2
print(q) # deque([3, 4, 5])
print(list(q)) # [3, 4, 5]
a = [1,2,2,2,2,2,2,4]
b = Counter(a)
print(a) # [1, 2, 2, 2, 2, 2, 2, 4]
print(b) # Counter({2: 6, 1: 1, 4: 1})
print(b[2]) #6
import math
print(math.factorial(5)) # 120
print(math.sqrt(4)) # 2
print(math.gcd(21,14)) # 7