Python Programming Course 4. Data Structures Python์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ ์ค์ ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ฐ ์์ด ๋งค์ฐ ๊ฐ๋ ฅํ ๋๊ตฌ์
๋๋ค. ์ด ์ฅ์์๋ ๊ธฐ๋ณธ์ ์ธ ๋ค ๊ฐ์ง ์๋ฃ๊ตฌ์กฐ์ธ List, Tuple, Set, Dictionary๋ฅผ ํ์ตํฉ๋๋ค. ๊ฐ ์๋ฃ๊ตฌ์กฐ์ ํน์ฑ, ์ฌ์ฉ๋ฒ, ๋ฉ์๋ ๋ฑ์ ์์ ์ ํจ๊ป ์ตํ๋ด
๋๋ค. ๐ป ์ ํ์ด์ฌ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋ฐฐ์์ผ ํ ๊น์? ๋ค์ํ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ค ๋ณด๋ฉด, ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ ์ฅํ๊ณ , ๊ด๋ฆฌํ๊ณ , ํ์ฉํ ๊ฒ์ธ์ง ๊ฐ ์ค์ํด์ง๋๋ฐ, ์ด๋ ๊ผญ ์์์ผ ํ ๊ฒ์ด ๋ฐ๋ก ๋ฐ์ดํฐ ๊ตฌ์กฐ(Data Structures) ์
๋๋ค. ํ์ด์ฌ์๋ list , tuple , set , dict ๊ฐ์ ๋ค์ํ ๋ด์ฅ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ์๋๋ฐ, ์ด๋ค์ ์ ํ์ฉํ๋ฉด: ํ์ค ์ธ๊ณ์ ๋ฐ์ดํฐ ๋ฅผ ์์ฐ์ค๋ฝ๊ฒ ํํํ ์ ์๊ณ , ์ฝ๋๋ฅผ ์งง๊ณ ๋ช
ํํ๊ฒ ๋ง๋ค ์ ์์ผ๋ฉฐ, ์ฑ๋ฅ์ด ๋ฐ์ด๋ ํ๋ก๊ทธ๋จ ์ ๋ง๋ค ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋จ์ํ ๋ฆฌ์คํธ๋ฅผ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๋๋ฆฌ๋ ๋์ , set ์ ์ฌ์ฉํ๋ฉด ์ค๋ณต์ ์ ๊ฑฐํ ์ ์๊ณ , dict ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณต์กํ ๋งคํ ๊ด๊ณ๋ ์ฝ๊ฒ ๊ตฌํํ ์ ์์ต๋๋ค. 4.1 Lists (๋ฆฌ์คํธ) 1. Creating and Accessing Lists ๋ฆฌ์คํธ๋ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ์์ฐจํ ๋ฐ์ดํฐ ๊ตฌ์กฐ์
๋๋ค. ์ธ๋ฑ์ค๋ฅผ ํตํด ๊ฐ๋ณ ์์์ ์ ๊ทผํ๊ฑฐ๋ ๋ผ์ด์ฑ์ผ๋ก ๋ถ๋ถ ์ถ์ถ์ด ๊ฐ๋ฅํฉ๋๋ค. [ ]๋ฅผ ์ด์ฉํฉ๋๋ค. ๋ค์ํ ํ์
์ ๋ฐ์ดํฐ(integer, string, ...)๋ฅผ ํจ๊ป ๊ฐ์ง ์ ์์ต๋๋ค. 2. List Methods append(x) - ๋ฆฌ์คํธ์ ๋์ x ๋ฅผ ์ถ๊ฐํฉ๋๋ค. insert(i, x) - i ์์น์ x ๋ฅผ ์ฝ์
ํฉ๋๋ค. remove(x) - ๋ฆฌ์คํธ์์ ์ฒซ ๋ฒ์งธ๋ก ๋์ค๋ x ๋ฅผ ์ ๊ฑฐํฉ๋๋ค. pop() - ๋ฆฌ์คํธ์ ๋ง์ง๋ง ์์๋ฅผ ์ ๊ฑฐํ๊ณ ๋ฐํํฉ๋๋ค. sort() - ๋ฆฌ์คํธ๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํฉ๋๋ค. reverse() - ๋ฆฌ์คํธ์ ์์๋ฅผ ์ญ์์ผ๋ก ๋ค์ง์ต๋๋ค. len(list) - ๋ฆฌ์คํธ์ ๊ธธ์ด(์์ ๊ฐ...
for๋ฌธ๊ณผ while๋ฌธ ๋ชจ๋ ๋ฐ๋ณต์ ์ํด ์ฐ์ด์ง๋ง, ๋ ๋ฌธ๋ฒ์ ์ ํํ ๋ ์ด๋ค ๊ธฐ์ค์ผ๋ก ์ฌ์ฉํ๋์ง ๋ ๊ตฌ์ฒด์ ์ธ ํ๋จ ๊ธฐ์ค์ด ์์๊น์?
๋ต๊ธ์ญ์ 1. "์ค์ฒฉ์ด ๊น์ด์ง์๋ก ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ฏ๋ก, ๊ฐ๋ฅํ ํ ๊ฐ๋จํ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑํ๊ฑฐ๋ ํจ์๋ฅผ ๋ถ๋ฆฌํ์ฌ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค."๋ผ๊ณ ํ์ จ๋๋ฐ ์ด๋ฐ ๊ฒฝ์ฐ ์ฝ๋๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ๊ณผ ํจ์๋ก ๋ถ๋ฆฌํด์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์๋ ค์ฃผ์ จ์ผ๋ฉด ํฉ๋๋ค.
๋ต๊ธ์ญ์ 2. for๋ฌธ ์์ if๋ฌธ์ ๋ฃ๋ ๊ฒ๊ณผ, if๋ฌธ ์์ for๋ฌธ์ ๋ฃ๋ ๊ฑด ์ด๋ค ์ฐจ์ด๊ฐ ์๋์ง ๊ถ๊ธํฉ๋๋ค.
1. ์์ ๋ด์ฉ์ค์ for๋ฌธ์ด ๋ฆฌ์คํธ ์ํ ๋๋ range()๋ฅผ ์ฌ์ฉํ ๋ฃจํ๋ฅผ ๋๋ ๋ฐฉ์๋ง ๋ณด์ด๋๋ฐ, ๋ค๋ฅธ ์ธ์ด์ฒ๋ผ ๋ณ์ ์ ์ธ ํ, ๊ทธ ๋ณ์์ ๋ฒ์๋ฅผ ์ง์ ํด์ ๋ฃจํ๋ฅผ ๋๋ ๋ฐฉ์์ ์๋๊ฑด๊ฐ์?
๋ต๊ธ์ญ์ 2. pass๋ "์คํํ ๋ด์ฉ์ด ์์ง ์์ ๋ ๋ฌธ๋ฒ์ ์ฝ๋๋ฅผ ์จ์ผ ํ๋ ์๋ฆฌ์ ์ฌ์ฉํ๋ค"๋ผ๊ณ ๋์์๋๋ฐ, ๋จ์ํ ์ฃผ์์ฒ๋ฆฌ๋ก ๋น์๋์ง ์๊ณ pass๋ผ๋ ํค์๋๋ฅผ ๋ฃ์ด์ฃผ๋ ์ด์ ๊ฐ ๊ถ๊ตผํฉ๋๋ค.
3. ๋ค๋ฅธ ์ธ์ด์์๋ for๋ฌธ ์์์ ์ฆ๊ฐ ์ฒ๋ฆฌ๋ฅผ ์ง์ ํด์ค์ผ ๋ฃจํ๊ฐ ์งํ๋๋๋ฐ,
์์ ์ค์ฒฉ for๋ฌธ ์์์์๋ ๋ณ๋๋ก i++ ๊ฐ์ ์ฆ๊ฐ ์ฝ๋๋ฅผ ์์ฑํ์ง ์์๋๋ฐ๋ ์๋์ผ๋ก(?)๋ฐ๋ณต์ด ์คํ๋๋๋ฐ, ์ด๋ป๊ฒ ๋ฐ๋ณต์ด ์งํ๋๋๊ฑด์ง ๊ถ๊ตผํฉ๋๋ค!
1.elif๋ฌธ์์ elif๋ฅผ ์ฐ๋ฌ์ ์ฌ์ฉํ๋ค๊ณ ํ์ จ๋๋ฐ ์ฐ๋ฌ์ ์ฌ์ฉํ๋ค๋ฉด ์ด๋์ ๋๊น์ง์ ๋ฒ์์์์ ์ฌ์ฉํ๋์ง ๊ถ๊ธํฉ๋๋ค
๋ต๊ธ์ญ์ 2. for๋ฌธ์ ๊ฒฝ์ฐ ๋ค๋ฅธ ๋ฌธ๋ฒ๋ค๋ณด๋ค ๋ณด๊ธฐ์๋ ์ ์ฐํ๊ฒ ๋ง์ด ํน์ฑ์ ๊ฐ์ง๊ณ ์๋๊ฒ๊ฐ์๋ฐ์ ์ค์ฒฉ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ ๋ ๋ค์ฌ์ฐ๊ธฐ๋ก ๊ตฌ๋ถํ์ง๋ง ์ฝ๋๋ฅผ ์์ฑ์ ์์น๊ฐ ํท๊ฐ๋ฆฌ๋๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ ๊ฒ๊ฐ์๋ฐ ์ฝ๊ฒ ์ฐพ๋ ๋ฐฉ๋ฒ์ด ๋ฐ๋ก ์์๊น์?
๋ํ,๋ค๋ฅธ์ธ์ด ํ๋ก๊ทธ๋จ์์๋ ํ์ด์ฌ์์์ ๊ฐ์ด ๊ธฐ๋ฅ์ด ๋น์ทํ๊ฒ ์ฌ์ฉํ๋์ง ์ฐจ์ด์ ๋ ๊ถ๊ธํฉ๋๋ค