ํ์ด์ฌ์ ๋ฆฌ์คํธ๋ ์์ for ๋ฐ๋ณต๋ฌธ๊ณผ if ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํ ์ ์์. ๋ฆฌ์คํธ ์์ ์, for ๋ฐ๋ณต๋ฌธ, if ์กฐ๊ฑด๋ฌธ ๋ฑ์ ์ง์ ํ์ฌ ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์ (List Comprehension)์ด๋ผ ํจ
์ปดํ๋ฆฌํจ์ ์ ๋ฅ๋ ฅ, ์ดํด๋ ฅ, ์ํ ๋ฑ์ ๋ป๋ ์์ง๋ง, ์ด๋ค ๊ฒ์ ์ก์์ ๋ด์๋๋ค๋ ๋ป์ด ์์. ์ฆ, ์์ผ๋ก ์ง์ ํด์ ์์ฑ๋ ๊ฒ์ ๋ฆฌ์คํธ๋ก ์ก์๋๋ ๊ฒ์ด ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์
[์ for ๋ณ์ in ๋ฆฌ์คํธ]
list(์ for ๋ณ์ in ๋ฆฌ์คํธ)
>>> a = [i for i in range(10)]
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> b = list(i for i in range(10))
>>> b
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> c = [i + 5 for i in range(10)]
>>> c
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
>>> d = [i * 2 for i in range(10)]
>>> d
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
[i for i in range(10)]
๋ ๋ณ์ i๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ์ง๋ง, ์๊ณผ ๊ฐ์ด ์ ๋ถ๋ถ์์ i๋ฅผ ๋ค๋ฅธ ๊ฐ๊ณผ ์ฐ์ฐํ๋ฉด ๊ฐ ์ฐ์ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌ์คํธ๋ก ์์ฑ ๊ฐ๋ฅ[i + 5 for i in range(10)]
๊ณผ ๊ฐ์ด i์ 5๋ฅผ ๋ํ๋ฉด 0๋ถํฐ 9๊น์ง์ ์ซ์์ 5๋ฅผ ๋ํ ๊ฐ์ผ๋ก ๋ฆฌ์คํธ๋ฅผ ์์ฑ. ๋ง์ฐฌ๊ฐ์ง๋ก [i * 2 for i in range(10)]
๋ 0๋ถํฐ 9๊น์ง์ ์ซ์์ 2๋ฅผ ๊ณฑํ ๊ฐ์ผ๋ก ๋ฆฌ์คํธ๋ฅผ ์์ฑํจTip! ๋๊ดํธ์ list() ๋ฆฌ์คํธ ํํ์
- ๋ฆฌ์คํธ ํํ์์
[์ for ๋ณ์ in ๋ฆฌ์คํธ]
์ฒ๋ผ [ ](๋๊ดํธ)๋ก ๋ง๋ค ์๋ ์๊ณ ,list(์ for ๋ณ์ in ๋ฆฌ์คํธ)
์ฒ๋ผ list๋ก ๋ง๋ค ์๋ ์์.- ํ์ง๋ง ๋ ์ค์ ์ฑ๋ฅ์ ๋๊ดํธ ๋ฐฉ์์ด ๋ ์ข์
- ํนํ list ๋ฐฉ์์ C ์ธ์ด ์คํ์ผ์ด๋ผ ๋๊ดํธ ๋ฐฉ์์ด ํ์ด์ฌ ๋ค์ด ์ฝ๋.
- ๋ฐ๋ผ์ ๋ฆฌ์คํธ ํํ์์ ๋๊ดํธ ๋ฐฉ์์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์. list๋ ๋ฆฌ์คํธ ํํ์์ ๋ง๋ค ์ ์๋ค๋ ์ ๋๋ง ์์ ๋๋ฉด ๋จ
[์ for ๋ณ์ in ๋ฆฌ์คํธ if ์กฐ๊ฑด์]
list(์ for ๋ณ์ in ๋ฆฌ์คํธ if ์กฐ๊ฑด์)
>>> a = [i for i in range(10) if i % 2 == 0]
>>> a
[0, 2, 4, 6, 8]
[i for i in range(10) if i % 2 == 0]
๋ 0๋ถํฐ 9๊น์ง ์ซ์๋ฅผ ์์ฑํ์ฌ 2์ ๋ฐฐ์์ธ ์ซ์(์ง์)๋ก๋ง ๋ฆฌ์คํธ๋ฅผ ์์ฑํจ >>> b = [i + 5 for i in range(10) if i % 2 == 1]
>>> b
[6, 8, 10, 12, 14]
>>> [i if i % 2 == 0 else None for i in range(5) ]
[0, None, 2, None, 4]
[์ for ๋ณ์1 in ๋ฆฌ์คํธ1 if ์กฐ๊ฑด์1 for ๋ณ์2 in ๋ฆฌ์คํธ2 if ์กฐ๊ฑด์2 ... for ๋ณ์n in ๋ฆฌ์คํธn if ์กฐ๊ฑด์n]
list(์ for ๋ณ์1 in ๋ฆฌ์คํธ1 if ์กฐ๊ฑด์1 for ๋ณ์2 in ๋ฆฌ์คํธ2 if ์กฐ๊ฑด์2 ... for ๋ณ์n in ๋ฆฌ์คํธn if ์กฐ๊ฑด์n)
>>> a = [i * j for j in range(2, 10) for i in range(1, 10)]
>>> a
[2, 4, 6, 8, 10, 12, 14, 16, 18, 3, 6, 9, 12, 15, 18, 21, 24, 27, 4, 8, 12, 16, 20, 24, 28, 32, 36, 5, 10, 15, 20, 25, 30, 35, 40, 45, 6, 12, 18, 24, 30, 36, 42, 48, 54, 7, 14, 21, 28, 35, 42, 49, 56, 63, 8, 16, 24, 32, 40, 48, 56, 64, 72, 9, 18, 27, 36, 45, 54, 63, 72, 81]
a = [i * j for j in range(2, 10)
for i in range(1, 10)]