<aside> ๐ก
ํ์ด์ฌ ์คํ์ผ ์ฝ๋ Pythonic Code
enumerate : list์ element๋ฅผ ์ถ์ถํ ๋ ๋ฒํธ๋ฅผ ๋ถ์ฌ์ ์ถ์ถ
>>> for i, vin enumerate(['tic', 'tac', 'toe']):
#list์ ์๋ index์ ๊ฐ์ unpacking
...
print (i, v)
...
0 tic
1 tac
2 toe
>>> mylist = ['a', 'b', 'c', 'd']
>>> list(enumerate(mylist)) #list์ ์๋ index์ ๊ฐ์ unpackingํ์ฌ list๋ก ์ ์ฅ
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]
zip: ๋ ๊ฐ์ list์ ๊ฐ์ ๋ณ๋ ฌ์ ์ผ๋ก ์ถ์ถํจ
>>> alist = ['a1', 'a2', 'a3']
>>> blist = ['b1', 'b2', 'b3']
>>> for a, b in zip(alist, blist): #๋ณ๋ ฌ์ ์ผ๋ก ๊ฐ์ ์ถ์ถ
... print (a,b)
...
a1 b1
a2 b2
a3 b3
>>> a,b,c = zip((1,2,3),(10,20,30),(100,200,300)) #๊ฐ tuple์ ๊ฐ์ index๋ผ๋ฆฌ ๋ฌถ์
(1, 10, 100) (2, 20, 200) (3, 30, 300)
>>> [sum(x) for x in zip((1,2,3), (10,20,30), (100,200,300))]
#๊ฐ Tuple ๊ฐ์ index๋ฅผ ๋ฌถ์ด ํฉ์ list๋ก ๋ณํ
[111, 222, 333]
enumerate & zip ๋์ ์ฌ์ฉ ์ฉ๋ก
>>> alist=['a1','a2','a3']
>>> blist=['b1','b2','b3']
>>>
>>> for i,(a,b) in enumerate(zip(alist,blist)):
... print(i,a,b) #index alist[index] blist[index] ํ์
...
0 a1 b1
1 a2 b2
2 a3 b3
lamda: ํจ์ ์ด๋ฆ ์์ด, ํจ์์ฒ๋ผ ์ธ ์ ์๋ ์ต๋ช ํจ์
์ํ์ ๋๋ค ๋์์์ ์ ๋ํจ

map: ๋ ๊ฐ ์ด์์ list์๋ ์ ์ฉ ๊ฐ๋ฅํจ, if filter๋ ์ฌ์ฉ๊ฐ๋ฅ

reduce: map function๊ณผ ๋ฌ๋ฆฌ list์ ๋๊ฐ์ ํจ์๋ฅผ ์ ์ฉํด์ ํตํฉ

generator: iterable object๋ฅผ ํน์ํ ํํ๋ก ์ฌ์ฉํด์ฃผ๋ ํจ์
element๊ฐ ์ฌ์ฉ๋๋ ์์ ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐํ
: yield๋ฅผ ์ฌ์ฉํด ํ๋ฒ์ ํ๋์ element๋ง ๋ฐํํจ