์ง๊ธ๊น์ง, ์ ์, ์ค์ ๋ฌธ์์ด์ ๋ค๋ฃจ๋ ๋ฒ์ ๋ฐฐ์ ๋ค. ๊ทธ๋ฐ๋ฐ ํ๋์ ๊ฐ ๋ง๊ณ , ์ฌ๋ฌ๊ฐ๋ฅผ ๋ค๋ฃฐ ํ์๊ฐ ์๋ค๋ฉด ์ด๋กํด์ผํ ๊น? ์ด๋ฐ ์ฉ๋๋ฅผ ์ํด python์ ๋ฆฌ์คํธ๋ฅผ ์ ๊ณตํ๊ณ ์๋ค. ๊ทธ๋ฆฌ๊ณ ํนํ ์๋ก ๋ค๋ฅธ ํ์ ์ ๊ฐ๊ณผ ๋ณ์ ๋ฅผ ํจ๊ป ๋ค๋ฃจ๋ฉด์ ์ฝ๊ณ /์ธ ์ ์๋ค๋ ์ฅ์ ์ ์ ๊ณตํ๋ค.
List
์์
2๋ฒ ์์ ์์ ๋ฆฌ์คํธ๋ฅผ a[1:2] = [โaโ, โbโ, โcโ]
๋ก ์์ ํ๋ ๊ฒ๊ณผ a[1] = [โaโ, โbโ, โcโ]
๋ก ์์ ํ๋ ๊ฒ์ ์ ํ ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ์ ๊ฐ๊ฒ ๋๋ฏ๋ก ์ฃผ์ํด์ผ ํ๋ค. a[1] = [โaโ, โbโ, โcโ]
๋ ๋ฆฌ์คํธ a์ ๋ ๋ฒ์งธ ์์๋ฅผ [โaโ, โbโ,โcโ]
๋ก ๋ฐ๊พผ๋ค๋ ๋ง์ด๊ณ
a[1:2]๋ a[1]์์ a[2]
์ฌ์ด์ ๋ฆฌ์คํธ๋ฅผ [โaโ, โbโ, โcโ]
๋ก ๋ฐ๊พผ๋ค๋ ๋ง์ด๋ค. ๋ฐ๋ผ์ a[1] = [โaโ, โbโ, โcโ]
๋ก ์์ ํ๊ฒ ๋๋ฉด ์์๋ ๋ฌ๋ฆฌ ๋ฆฌ์คํธ a๊ฐ [1, [โaโ, โbโ,โcโ], 4]
๋ผ๋ ๊ฐ์ผ๋ก ๋ณํ๊ฒ ๋๋ค.
์ญ์
[ ] ์ฌ์ฉํด ๋ฆฌ์คํธ ์์ ์ญ์ ํ๊ธฐ
del ํจ์ ์ฌ์ฉํด ๋ฆฌ์คํธ ์์ ์ญ์ ํ๊ธฐ
๋ฆฌ์คํธ ๊ด๋ จ ํจ์
append
sort
insert
remove
์ฒซ๋ฒ์งธ๋ก ๋์ค๋ ๋ ์์ ์ญ์ ํ๋ค.
pop
pop( )์ ๋ฆฌ์คํธ์ ๋งจ ๋ง์ง๋ง ์์๋ฅผ ๋๋ ค ์ฃผ๊ณ ๊ทธ ์์๋ ์ญ์ ํ๋ ํจ์์ด๋ค.
๋ฆฌ์คํธ ์์ดํ ์ดํดํ๊ธฐ
์ด๋ฌ๋ฉด ๋ฆฌ์คํธ ์์๋ฅผ ๋ฐ๊ฟ ์ ์๋ค.
๊ฐ ๋ฆฌ์คํธ ์์์ ํ์ ์ ๋ฐ๋ฅธ ๋ฉ์๋๋ฅผ ํ์ฉํ ์ ์๋ค.
1๋ฒ ์์๊ฐ str ์ด๊ธฐ ๋๋ฌธ์ ๋ํด์ ์๋ก์ด string ์ ๋ง๋ค ์ ์๋ค.
in ์ฐ์ฐ์
๋ฆฌ์คํธ ์์ ํด๋น ์์๊ฐ ์๋์ง ๊ฒ์ฌํ๋ ์ฐ์ฐ์ ์ด๋ค. ๋งค์ฐ ์ ์ฉํ๋ค!
List Slicing
๊ธฐ์กด์ String ์์ Slicing ์ ๋ฐฐ์ ๋๋ฐ, ๋น์ทํ ๋ฐฉ์์ผ๋ก ์๋ํ๋ค.
์ด ๋ ๋ค์์ ๋ถํฐ ๊ฑฐ๊พธ๋ก ๋ถ๋ฌ์ฌ ์๋ ์๋๋ฐ, ์ด ๋ถ๋ถ์ ๊ธฐ์ตํด ๋๋ ๊ฒ์ด ์ค์ํ๋ค.
์์์ ์ ๋์ผ๋ก, ์ข ๋ฃ์ง์ ์ ์์ ์๋ ์ธ๋ฑ์ค๋ก ์ ํํ๊ณ , ๋งจ๋ค์ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ถํธ๋ฅผ ๊ฑฐ๊พธ๋ก ํด์ ์ฃผ๋ฉด ์์ ๊ฐ์ด ์ถ๋ ฅ๋๋ค. ์ฆ. ๋งจ๋ค์ ํ๋ผ๋ฏธํฐ๋ ๋ฑ์ฐจ์์ด์ ๊ณต์ฐจ๋ผ ์๊ฐํ๋ฉด ์ข๋ค.
List copy, aliasing
ํ์ด์ฌ์ C++ ์ฒ๋ผ ์ ์ธ์ ํ ๋, ๊ณ์ํด์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ฐ์ด ์ ์ฅ๋๋ ํ์์ด ์๋, ๋ง์ฝ ๊ฐ์ ๊ฐ์ ์ ์ธํ๋ค๋ฉด ํด๋น ๋ณ์ ์์๋ ๊ฐ์ด ์ ์ฅ๋์ด ์๋ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฐฉ์์ผ๋ก ์๋ํ๋ค. ์ฆ, ๊ธฐ๋ณธ์ ์ผ๋ก Shallow copy๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ํ๋ค. ๋ฐ๋ผ์ ๋ด๊ฐ ํน์ ๋ณ์๋ฅผ ๋ค๋ฅธ ๋ณ์์ด๋ฆ์ผ๋ก ๊ฐ์ ธ์จ๋ค๋ฉด C++์ ์ฐธ์กฐ๋ณ์์ ๊ฐ์ ๊ฐ๋ ์ผ๋ก ์๋ํ๋ค.
์ด ๋ courseAliasing
๋ณ์๋ course
๋ณ์๊ฐ ์๋ํ๋ ๋ฐฉ์๊ณผ ๋๊ฐ์ด ๊ฐ๊ฐ์ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ ์ฃผ์๋ค์ด ๋ฌถ์ฌ์๋ ๋
์์ด ๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ง์ฝ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ course
์์ ๋ค์ด๊ฐ ์์๋ค์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋๊ฐ์ด ๋ณต์ฌํ ๋
์์ด ๊ฐ๊ณ ์ถ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น? ๋ฅ์นดํผ๋ฅผ ํ๊ณ ์ถ๋ค๋ฉด?
์ด๋ ๊ฒ ์จ์ฃผ๋ฉด ๋๋ค. ์ฆ, ์ฌ๋ผ์ด์ฑ์ ํ๊ฒ ๋๋ฉด DeepCopy ๋ฐฉ์์ผ๋ก ์๋ ํ๋ค. ์์ ๋ ๋ฆฌ์คํธ ์์์ ๊ฐ์ ๋ฐ๊ฟ๋ณด๋ฉฐ ์ฐจ์ด๋ฅผ ํ์ธํด๋ณด์.
courseAliasing
๋ฆฌ์คํธ์ ๊ฐ์ ๋ฐ๊พผํ, ์๋ course
๋ฆฌ์คํธ๋ฅผ ์ถ๋ ฅํด ๋ณด๊ณ , courseCopy
๋ฆฌ์คํธ์ ๊ฐ์ ๋ฐ๊พผํ ์ถ๋ ฅํด๋ณด์.
[Before]
course: ['Python', 'Javascript', 'C++', '__reserved__']
courseAliasing: ['Python', 'Javascript', 'C++', '__reserved__']
courseCopy: ['Python', 'Javascript', 'C++', '__reserved__']
[After]
course: ['Python', 'Javascript', 'C++', 'CSS3']
courseAliasing: ['Python', 'Javascript', 'C++', 'CSS3']
courseCopy: ['Python', 'Javascript', 'C++', 'HTML5']
courseAliasing
๋ณ์๋ฅผ ๋ณํ์ํค๋ course
์์์ ๊ฐ๋ ๋ณํํ๋ค. ๊ทธ๋ฆฌ๊ณ courseCopy
๊ฐ์ course
์ ๋ณ๊ฐ๋ก ์๋ํ๋ ๊ฒ์ ์ ์ ์๋ค.
์ ๋ ฅ ํ๋ผ๋ฏธํฐ๋ก์ ๋ฆฌ์คํธ
C++ ์์๋ ์ ๋ ฅํ๋ผ๋ฏธํฐ๋ก ๊ฐ์ ๋๊ธฐ๋ฉด, ์ด ๊ฐ์ ํจ์๋ด์์ ์ ์๋ ๋ณ์์ ๋ฅ์นดํผ๋ฅผ ํด์ ๊ฐ์ ธ์จ ๋ค์ ์ฒ๋ฆฌ๋ฅผ ๊ฑฐ์น ํ ๋ฆฌํดํ๊ณ , ์์ ์ง์ญ๋ณ์๋ค์ ์ฌ๋ผ์ง๋ค.
ํ์ง๋ง ํ์ด์ฌ์ ๊ธฐ๋ณธ์ ์ผ๋ก c++ ์์์ ์ฐธ์กฐ๋ณ์๋ก ๋ชจ๋ ๊ฒ์ด ๋์๊ฐ๊ธฐ ๋๋ฌธ์, ๋ด๊ฐ ํจ์์ ์ ๋ ฅ๋ณ์๋ก ๋ฆฌ์คํธ๋ฅผ ์ ๋ฌํ ํ, ํจ์๋ด์์ ๋ฆฌ์คํธ ๋ด๋ถ๋ฅผ ์์ /๋ณ๊ฒฝํ ๊ฒฝ์ฐ ํจ์๊ฐ ๋๋ ํ์๋ ์ฌ์ ํ ๋ฆฌ์คํธ๋ ์์ ๋ ์ํ๋ก ์ ์ง๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ๋ฆฌ์คํธ์ ๊ฐ์ฅ ๋๊ฐ์ ์ง์ฐ๋ ํจ์๋ฅผ ๋ง๋ค์๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค๊ณ , ํจ์์คํ ์ด์ ๊ณผ ์ดํ์ course
๋ฆฌ์คํธ ๋ณ๊ฒฝ์ด ๋์๋ ์ง ํ์ธํด๋ณด์.
[Before function call] ['Python', 'Javascript', 'C++', '__reserved__']
[in removeTailItem] ['Python', 'Javascript', 'C++']
[After function call] ['Python', 'Javascript', 'C++']
course
์ ์์๊ฐ ๋ณ๊ฒฝ๋ ๊ฒ์ ์ ์ ์๋ค.
์ค์ฒฉ๋ ๋ฆฌ์คํธ
C++๊ณผ ๊ฐ์ด ๋ฆฌ์คํธ์์ ์์๋ก ๋ฆฌ์คํธ๋ฅผ ์ค ์ ์๋ค. ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ ๊ฐ์ผ๋ฏ๋ก ์๋ตํ๋๋ก ํ๊ฒ ๋ค.
Method of List
์ญ์ ๋ฆฌ์คํธ๋ก ํด๋์ค๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ, ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณต๋๋ method๊ฐ ์๋ค. ๊ผญ ํ์ํ ๊ฒ๋ง ์ ๋ฆฌ ํด๋ณด๋ฉด,
append()
: ๋ฆฌ์คํธ์ ์์ดํ ์ ๋ง์ง๋ง์ ์ถ๊ฐํจextend()
: ๋ฆฌ์คํธ์ ์ฃผ์ด์ง ๋ฆฌ์คํธ์ ์์ดํ ์ ๋ง์ง๋ง์ ์ถ๊ฐํจinsert()
: ๋ฆฌ์คํธ์ ์ฃผ์ด์ง ์์น์ ์ฃผ์ด์ง ์์ดํ ์ ์ฝ์ ํ๊ณ , ์ฝ์ ๋ ์์น์ ๊ธฐ์กด ์์ดํ ์ ๋ค์ ์์นํ๋๋ก ํจremove()
: ๋ฆฌ์คํธ๋ด์์ ์ฃผ์ด์ง ์์ดํ ๊ณผ ๋์ผํ ์์ดํ ์ ๋ชจ๋ ์ ๊ฑฐํจcount()
: ๋ฆฌ์คํธ์์ ์ฃผ์ด์ง ์์ดํ ๊ณผ ๋์ผํ ์์ดํ ์ ๊ฐฏ์๋ฅผ ์นด์ดํธํจsort()
: ๋ฆฌ์คํธ๋ด์ ์์ดํ ์ ์์๋๋ก ์ ๋ ฌํจreverse()
: ๋ฆฌ์คํธ๋ด์ ์์ดํ ์ ์ญ์์ผ๋ก ์ ๋ ฌํจpop()
: ๋ฆฌ์คํธ์ ๋ง์ง๋ง ์์ดํ ์ ๋๋ ค์ฃผ๋ฉด์, ํด๋น ์์ดํ ์ ๋ฆฌ์คํธ์์ ์ ๊ฑฐํจ
pop ํ๊ธฐ
์ ๋ ฌํ๊ธฐ
๊ฑฐ๊พธ๋ก ์ ๋ ฌํ๊ธฐ
๋ค์ ์์ ์ถ๊ฐํ๊ธฐ
๊ฑฐ๊พธ๋ก ์ถ๋ ฅํ๊ธฐ
ํด๋น ์์ ๊ฐ์ ์ถ๋ ฅํ๊ธฐ
๋ฆฌ์คํธ ํ์ด์ ์ถ๊ฐํ๊ธฐ
์์ ์ง์ฐ๊ธฐ
ํด๋น ์์์ ์ธ๋ฑ์ค ๊ฐ ๊ฐ์ ธ์ค๊ธฐ
์ฝ์ ํ๊ธฐ
4๋ฒ ์ธ๋ฑ์ค ์์น์ ์ฝ์ ํ๋ค.