์ฅ๊ณ ์์ ์ฟผ๋ฆฌ์ ์ ๊บผ๋ด๊ธฐ ์ํด ๋ฐ๋ณต๋ฌธ์ ์ธ ์ผ์ด ๋ง์๋ฐ, ๋ฐ์ดํฐ ์ข ๋ฅ๊ฐ ๋ง์ ์ฝ๋ ๊ฐ๋ ์ฑ์ ๋จ์ด์ง๋ค๋ณด๋ list comprehension์ ์จ์ผํ ๊ฒ ๊ฐ์์ ์ ๋ฆฌํด๋ณด๋ ๋ธ๋ก๊ทธ.
์ฌ์ค python ๋ ํ๋ฆฟ์ ํ๋ค๊ฐ, ๋ฌธ์ ๋ฅผ ์์ฒญ ์ฝ๊ฒ ํธ๋ ๋ฐฉ๋ฒ(๋งํฌ์ 1.3๋ถํฐ)์ ์๊ฑฐ๋ก ์ฐพ์๋ด์ ์๊ฒ ๋ ๊ฐ๋ ์ด๊ธด ํ๋ค. ๊ทธ ์ดํ๋ก ๋ฑํ ์ฌ์ฉ์ ์ ํ๊ธฐ ๋๋ฌธ์ ์ข ๋ ์นํด์ ธ์ ๋ง์ด ์ฐ๊ธฐ ์ํด ๊ฐ์ ธ์๋ดค๋ค.
์ฝ๋ฉ๋์ฅ:๋ฆฌ์คํธ ํํ์ ์ฌ์ฉํ๊ธฐ์ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ๊ณต๋ถํ๋ค ๐ค
ํ์ด์ฌ์ ๋ฆฌ์คํธ๊ฐ ํน์ดํ ์ ์ ๋ฆฌ์คํธ ์์ for ๋ฐ๋ณต๋ฌธ๊ณผ if ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํ ์ ์๋ค๋ ์ ์ ๋๋ค. ์ด๋ ๊ฒ
๋ฆฌ์คํธ ์์ ์, for ๋ฐ๋ณต๋ฌธ, if ์กฐ๊ฑด๋ฌธ ๋ฑ์ ์ง์ ํ์ฌ ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์ (list comprehension)
์ด๋ผ๊ณ ํฉ๋๋ค.comprehension์ ๋ฅ๋ ฅ, ์ดํด๋ ฅ, ์ํ ๋ฑ์ ๋ป๋ ์์ง๋ง, ์ด๋ค ๊ฒ์ ์ก์์ ๋ด์๋๋ค๋ ๋ป์ด ์์ต๋๋ค. ์ฆ,
์์ผ๋ก ์ง์ ํด์ ์์ฑ๋ ๊ฒ์ ๋ฆฌ์คํธ๋ก ์ก์๋๋ ๊ฒ์ด ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์
์ ๋๋ค. ๊ฐ๋ ์ ์ผ๋ก ๋ณด๋ฉด "๋ฆฌ์คํธ ํํ์"์ด๋ผ๊ณ ํ ์ ์์ผ๋ ์ด ์ฑ ์์๋ ๊ฐ๋จํ๊ฒ ๋ฆฌ์คํธ ํํ์์ด๋ผ๊ณ ์ฐ๊ฒ ์ต๋๋ค.
๋ฆฌ์คํธ ํํ์์ ๋ค์๊ณผ ๊ฐ์ด ๋ฆฌ์คํธ ์์ ์, for ๋ฐ๋ณต๋ฌธ์ ์ง์ ํ๋ค.
# 0๋ถํฐ 9๊น์ง ์ซ์๋ฅผ ์์ฑํ์ฌ ๋ฆฌ์คํธ ์์ฑ
>>> a = [i for i in range(10)]
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 0๋ถํฐ 9๊น์ง ์ซ์๋ฅผ ์์ฑํ๋ฉด์ ๊ฐ์ 5๋ฅผ ๋ํ์ฌ ๋ฆฌ์คํธ ์์ฑ
>>> c = [i + 5 for i in range(10)]
>>> c
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
# 0~9 ์ซ์ ์ค 2์ ๋ฐฐ์์ธ ์ซ์(์ง์)๋ก ๋ฆฌ์คํธ ์์ฑ
>>> a = [i for i in range(10) if i % 2 == 0]
>>> a
[0, 2, 4, 6, 8]
# 0~9 ์ซ์ ์ค ํ์์ 5๋ฅผ ๋ํ์ฌ ๋ฆฌ์คํธ ์์ฑ
>>> b = [i + 5 for i in range(10) if i % 2 == 1]
>>> b
[6, 8, 10, 12, 14]
[์ 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)]
๋กค๋ ์ค ์ฝ๋ ์์ฑ ์์ ๋ง๋ค์๋ ๋ชจ๋ ๋ฐ๋ณต๋ฌธ์ ๊ฐ๋ ์ฑ ๋ฐ ์ฝ๋ ์ถ์ฝ์ ์ํด list comprehension์ผ๋ก ๋ฐ๊พธ์ด๋ณด์ ๐ค๐ค๐ค