๐Ÿ ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ? ์˜ˆ์ œ ํฌํ•จ ์™„๋ฒฝ ๊ฐ€์ด๋“œ! ๋ฐ์ดํ„ฐ ์ „๋ฌธ๊ฐ€ ํ•„์ˆ˜ ์ž๋ฃŒํ˜• A to Z ๐Ÿš€



ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ? ์˜ˆ์ œ ํฌํ•จํ•ด์„œ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์‹ค์Šต๊นŒ์ง€ ํ•œ ๋ฒˆ์— ๋๋‚ด์„ธ์š”! ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ์˜ ์ •์˜, ์ƒ์„ฑ, ํ•ต์‹ฌ ๋ฉ”์„œ๋“œ, ํ™œ์šฉ ์˜ˆ์ œ๊นŒ์ง€ ๋ฐ์ดํ„ฐ ์ „๋ฌธ๊ฐ€๊ฐ€ ๋˜๊ธฐ ์œ„ํ•œ ํ•„์ˆ˜ ์ง€์‹์„ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.



๐Ÿ’ก ์™œ ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ? ์˜ˆ์ œ ํฌํ•จ ํ•™์Šต์ด ํ•„์ˆ˜์ธ๊ฐ€์š”?

ํŒŒ์ด์ฌ์„ ๋ฐฐ์šด๋‹ค๋ฉด ๋ˆ„๊ตฌ๋‚˜ ๊ฐ€์žฅ ๋จผ์ € ์ ‘ํ•˜๊ฒŒ ๋˜๋Š” ํ•ต์‹ฌ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ๋ฐ”๋กœ ๋ฆฌ์ŠคํŠธ(List) ์ž…๋‹ˆ๋‹ค. ๋ฆฌ์ŠคํŠธ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋‹ด์•„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ด์ฌ์˜ ๊ฝƒ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์ฃ . ๋ฐ์ดํ„ฐ ๋ถ„์„, ์›น ๊ฐœ๋ฐœ, ์ธ๊ณต์ง€๋Šฅ ๋“ฑ ์–ด๋–ค ๋ถ„์•ผ๋ฅผ ๊ณต๋ถ€ํ•˜๋“  ๋ฆฌ์ŠคํŠธ๋ฅผ ๋Šฅ์ˆ™ํ•˜๊ฒŒ ๋‹ค๋ฃจ๋Š” ๋Šฅ๋ ฅ์€ ํŒŒ์ด์ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ธฐ๋ณธ ์ค‘์˜ ๊ธฐ๋ณธ์ž…๋‹ˆ๋‹ค.

"ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ? ์˜ˆ์ œ ํฌํ•จํ•ด์„œ ์ •ํ™•ํžˆ ์ดํ•ดํ•˜๊ณ  ์‹ถ์€๋ฐ, ์‰ฌ์šฐ๋ฉด์„œ๋„ ์‹ฌ๋„ ์žˆ๋Š” ์ž๋ฃŒ๊ฐ€ ์—†์„๊นŒ?"๋ผ๋Š” ๊ณ ๋ฏผ์„ ํ•˜๋Š” ๋ถ„๋“ค์„ ์œ„ํ•ด ์ด ๊ธ€์„ ์ค€๋น„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ์˜ ์ •์˜๋ถ€ํ„ฐ ์ƒ์„ฑ ๋ฐฉ๋ฒ•, ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋‹ค์–‘ํ•œ ํ•ต์‹ฌ ๋ฉ”์„œ๋“œ, ๊ทธ๋ฆฌ๊ณ  ์‹ค๋ฌด์—์„œ ๋ฐ”๋กœ ํ™œ์šฉ ๊ฐ€๋Šฅํ•œ ์˜ˆ์ œ ํฌํ•จํ•˜์—ฌ ์™„๋ฒฝํ•˜๊ฒŒ ๋งˆ์Šคํ„ฐํ•  ์ˆ˜ ์žˆ๋„๋ก ์นœ์ ˆํ•˜๊ฒŒ ์•ˆ๋‚ดํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ง€๊ธˆ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์˜ ๋งˆ๋ฒ•, ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ์˜ ์„ธ๊ณ„๋กœ ํ•จ๊ป˜ ๋– ๋‚˜๋ณด์‹œ์ฃ ! ๐Ÿ’ก




๐Ÿ“š ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ? ์˜ˆ์ œ ํฌํ•จ ์ •์˜ ๋ฐ ์ƒ์„ฑ ๋ฐฉ๋ฒ• (๊ธฐ์ดˆ ๋‹ค์ง€๊ธฐ)

ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ’(์š”์†Œ)์„ ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜์— ๋‹ด์•„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒํ˜•์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ํฐ ํŠน์ง•์€ ์ˆœ์„œ๊ฐ€ ์žˆ๊ณ  (Ordered), ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•˜๋ฉฐ (Mutable), ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.

๋ฆฌ์ŠคํŠธ์˜ ํ•ต์‹ฌ ํŠน์ง•:

  1. ์ˆœ์„œ ์œ ์ง€ (Ordered): ์š”์†Œ๋“ค์ด ์ถ”๊ฐ€๋œ ์ˆœ์„œ๋Œ€๋กœ ์ธ๋ฑ์Šค(Index)๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

  2. ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ (Mutable): ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ƒ์„ฑ๋œ ํ›„์—๋„ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€, ์‚ญ์ œ, ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  3. ๋‹ค์–‘ํ•œ ํƒ€์ž… ํ—ˆ์šฉ: ์ˆซ์ž, ๋ฌธ์ž์—ด, ์‹ฌ์ง€์–ด ๋‹ค๋ฅธ ๋ฆฌ์ŠคํŠธ๊นŒ์ง€ ๋ชจ๋“  ํŒŒ์ด์ฌ ๊ฐ์ฒด๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ ๋ฐฉ๋ฒ• (์˜ˆ์ œ ํฌํ•จ):

๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์€ ๋Œ€๊ด„ํ˜ธ []๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์š”์†Œ๋“ค์„ ์‰ผํ‘œ(,)๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๋‚˜์—ดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Python
# ๋นˆ ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ ์˜ˆ์ œ
empty_list = []
print(empty_list) # ์ถœ๋ ฅ: []

# ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž… ํฌํ•จ ์˜ˆ์ œ
mixed_list = [10, "Python", 3.14, True, [1, 2]]
print(mixed_list) # ์ถœ๋ ฅ: [10, 'Python', 3.14, True, [1, 2]]

# ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ ์‹œ ์ดˆ๊ธฐ๊ฐ’ ์˜ˆ์ œ
fruits = ["apple", "banana", "cherry"]
print(fruits) # ์ถœ๋ ฅ: ['apple', 'banana', 'cherry']

์ด์ฒ˜๋Ÿผ ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ๋Š” ๋งค์šฐ ์œ ์—ฐํ•˜์—ฌ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋“  ์‰ฝ๊ฒŒ ๋ฌถ์–ด์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.



๐Ÿ”ง ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ? ์˜ˆ์ œ ํฌํ•จ ํ•ต์‹ฌ ๋ฉ”์„œ๋“œ (์ถ”๊ฐ€, ์‚ญ์ œ, ์ˆ˜์ •)

ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์š”์†Œ๋ฅผ ๋‹ค๋ฃจ๋Š” ํ•ต์‹ฌ ๋ฉ”์„œ๋“œ๋ฅผ ์ˆ™์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ์ŠคํŠธ๋Š” ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ(Mutable) ๊ฐ์ฒด์ด๋ฏ€๋กœ, ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ๊ทธ ๋‚ด์šฉ์„ ๋™์ ์œผ๋กœ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ๋ฉ”์„œ๋“œ์„ค๋ช…์˜ˆ์ œ ํฌํ•จ (Code Snippet)
์ถ”๊ฐ€append()๋ฆฌ์ŠคํŠธ์˜ ๋งจ ๋์— ์ƒˆ๋กœ์šด ์š”์†Œ ์ถ”๊ฐ€my_list.append(5)
์‚ฝ์ž…insert(index, item)ํŠน์ • ์ธ๋ฑ์Šค ์œ„์น˜์— ์š”์†Œ ์‚ฝ์ž…my_list.insert(1, 'new')
ํ™•์žฅextend(iterable)๋‹ค๋ฅธ ๋ฆฌ์ŠคํŠธ๋‚˜ ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋ฅผ ์ด์–ด ๋ถ™์ด๊ธฐmy_list.extend([6, 7])
์‚ญ์ œ (๊ฐ’)remove(value)๋ฆฌ์ŠคํŠธ์—์„œ ์ฒซ ๋ฒˆ์งธ๋กœ ๋ฐœ๊ฒฌ๋˜๋Š” ํŠน์ • ๊ฐ’ ์‚ญ์ œmy_list.remove('new')
์‚ญ์ œ (์ธ๋ฑ์Šค)pop(index)ํŠน์ • ์ธ๋ฑ์Šค์˜ ์š”์†Œ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ๋ฐ˜ํ™˜removed = my_list.pop(0)

์˜ˆ๋ฅผ ๋“ค์–ด, pop() ๋ฉ”์„œ๋“œ๋Š” ๋‹จ์ˆœํžˆ ์‚ญ์ œ๋งŒ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์‚ญ์ œ๋œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ ์‚ญ์ œ์™€ ๋™์‹œ์— ํ•ด๋‹น ๊ฐ’์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

Python
# ๋ฆฌ์ŠคํŠธ ์ˆ˜์ • ๋ฐ ์‚ญ์ œ ์˜ˆ์ œ
numbers = [10, 20, 30]
numbers.append(40) # [10, 20, 30, 40]
numbers.insert(1, 15) # [10, 15, 20, 30, 40]

removed_item = numbers.pop(2) # 20์ด ์‚ญ์ œ๋˜๊ณ  ๋ฐ˜ํ™˜๋จ
print(numbers) # ์ถœ๋ ฅ: [10, 15, 30, 40]
print(f"์‚ญ์ œ๋œ ๊ฐ’: {removed_item}") # ์ถœ๋ ฅ: ์‚ญ์ œ๋œ ๊ฐ’: 20

์ด์ฒ˜๋Ÿผ ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ๋“ค์„ ์ ์žฌ์ ์†Œ์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•˜๋Š” ๋น„๋ฒ•์ž…๋‹ˆ๋‹ค.



๐Ÿ”ข ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ? ์˜ˆ์ œ ํฌํ•จ ์Šฌ๋ผ์ด์‹ฑ๊ณผ ์ธ๋ฑ์‹ฑ (๋ฐ์ดํ„ฐ ์ ‘๊ทผ์˜ ๊ธฐ์ˆ )

๋ฆฌ์ŠคํŠธ์— ๋‹ด๊ธด ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ณ  ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ์ถ”์ถœํ•˜๋Š” ๊ธฐ์ˆ , ์ฆ‰ **์ธ๋ฑ์‹ฑ(Indexing)**๊ณผ **์Šฌ๋ผ์ด์‹ฑ(Slicing)**์€ ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ ์‚ฌ์šฉ์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.

1. ์ธ๋ฑ์‹ฑ (Indexing)

  • ์ธ๋ฑ์Šค๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

  • ์Œ์ˆ˜ ์ธ๋ฑ์Šค๋Š” ๋ฆฌ์ŠคํŠธ์˜ ๋งจ ๋’ค์—์„œ๋ถ€ํ„ฐ ์š”์†Œ๋ฅผ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค. (์˜ˆ: -1์€ ๋งˆ์ง€๋ง‰ ์š”์†Œ)

Python
# ์ธ๋ฑ์‹ฑ ์˜ˆ์ œ
data = ['A', 'B', 'C', 'D', 'E']
print(data[0]) # ์ถœ๋ ฅ: A (์ฒซ ๋ฒˆ์งธ ์š”์†Œ)
print(data[-1]) # ์ถœ๋ ฅ: E (๋งˆ์ง€๋ง‰ ์š”์†Œ)

2. ์Šฌ๋ผ์ด์‹ฑ (Slicing)

  • list[์‹œ์ž‘ ์ธ๋ฑ์Šค : ๋ ์ธ๋ฑ์Šค : ์Šคํ…] ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ๋ ์ธ๋ฑ์Šค์˜ ์š”์†Œ๋Š” ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. (๋งค์šฐ ์ค‘์š”!)

์Šฌ๋ผ์ด์‹ฑ ํ˜•์‹์„ค๋ช…์˜ˆ์ œ ํฌํ•จ (์ถœ๋ ฅ)
[n:m]n๋ถ€ํ„ฐ m-1๊นŒ์ง€ ์ถ”์ถœdata[1:4]['B', 'C', 'D']
[:m]์ฒ˜์Œ๋ถ€ํ„ฐ m-1๊นŒ์ง€ ์ถ”์ถœdata[:3]['A', 'B', 'C']
[n:]n๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ถ”์ถœdata[2:]['C', 'D', 'E']
[:: -1]๋ฆฌ์ŠคํŠธ ์ „์ฒด๋ฅผ ์—ญ์ˆœ์œผ๋กœ ์ถ”์ถœdata[::-1]['E', 'D', 'C', 'B', 'A']

์ด๋Ÿฌํ•œ ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ์˜ ์ธ๋ฑ์‹ฑ๊ณผ ์Šฌ๋ผ์ด์‹ฑ ๊ธฐ๋ฒ•์„ ์ตํžˆ๋ฉด, ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ์…‹์—์„œ๋„ ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



๐Ÿ’ก ์‹ค์ „ ํ™œ์šฉ! ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜๊ณผ ํšจ์œจ์ ์ธ ๋ฐ˜๋ณต๋ฌธ (๊ณ ๊ธ‰ ์˜ˆ์ œ ํฌํ•จ)

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํšจ์œจ์„ ๊ทน๋Œ€ํ™”ํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” **๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜(List Comprehension)**์€ ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ์˜ ๊ฝƒ์ด๋ผ๊ณ  ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค. ๋ฐ˜๋ณต๋ฌธ(Loop)๊ณผ ์กฐ๊ฑด๋ฌธ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‹จ ํ•œ ์ค„๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

1. ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜ (List Comprehension)

Python
# ์ผ๋ฐ˜์ ์ธ ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•œ ์˜ˆ์ œ
squares = []
for i in range(1, 6):
squares.append(i * i)
print(squares) # ์ถœ๋ ฅ: [1, 4, 9, 16, 25]

# ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜ ์‚ฌ์šฉ ์˜ˆ์ œ (๋™์ผ ๊ฒฐ๊ณผ)
squares_comp = [i * i for i in range(1, 6)]
print(squares_comp) # ์ถœ๋ ฅ: [1, 4, 9, 16, 25]

2. ์กฐ๊ฑด๋ฌธ์ด ํฌํ•จ๋œ ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜

Python
# ์กฐ๊ฑด๋ฌธ ํฌํ•จ ์˜ˆ์ œ: ์ง์ˆ˜๋งŒ ์ œ๊ณฑํ•˜๊ธฐ
even_squares = [i * i for i in range(1, 11) if i % 2 == 0]
print(even_squares) # ์ถœ๋ ฅ: [4, 16, 36, 64, 100]

ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ? ์˜ˆ์ œ ํฌํ•จํ•ด์„œ ์ด ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜์„ ๋งˆ์Šคํ„ฐํ•œ๋‹ค๋ฉด, ๋‹น์‹ ์˜ ํŒŒ์ด์ฌ ์ฝ”๋“œ๋Š” ํ›จ์”ฌ ๋น ๋ฅด๊ณ  ๊ฐ€๋…์„ฑ ์žˆ๊ฒŒ ๋ณ€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‹ค๋ฌด์—์„œ๋Š” ๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋ง์ด๋‚˜ ๋ณ€ํ˜• ์ž‘์—…์— ํ•„์ˆ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.


✍️ ๊ฒฐ๋ก : ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ? ์˜ˆ์ œ ํฌํ•จ ๋งˆ์Šคํ„ฐํ•˜๊ณ  ๋ฐ์ดํ„ฐ ์ „๋ฌธ๊ฐ€๋กœ!

์ง€๊ธˆ๊นŒ์ง€ ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ์˜ ์ •์˜, ํŠน์ง•, ๋ฐ์ดํ„ฐ ์กฐ์ž‘ ๋ฉ”์„œ๋“œ, ๊ทธ๋ฆฌ๊ณ  ์Šฌ๋ผ์ด์‹ฑ ๋ฐ ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜๊ณผ ๊ฐ™์€ ๊ณ ๊ธ‰ ์˜ˆ์ œ ํฌํ•จ ๊ธฐ๋ฒ•๊นŒ์ง€ ๋ชจ๋‘ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋Š” ์ปจํ…Œ์ด๋„ˆ ์—ญํ• ์„ ํ•˜๋ฉฐ, ํŒŒ์ด์ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ฑฐ์˜ ๋ชจ๋“  ์˜์—ญ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ณ  ๊ธฐ๋ณธ์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

๋ฆฌ์ŠคํŠธ๋ฅผ ์ž์œ ์ž์žฌ๋กœ ๋‹ค๋ฃจ๋Š” ๋Šฅ๋ ฅ์€ ๊ณง ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์˜ ๊ธฐ์ดˆ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜ ๋ฐฐ์šด ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ? ์˜ˆ์ œ ํฌํ•จ ๋‚ด์šฉ๋“ค์„ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‹ค์Šตํ•˜์—ฌ ์™„๋ฒฝํ•˜๊ฒŒ ์ž์‹ ์˜ ๊ฒƒ์œผ๋กœ ๋งŒ๋“œ์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•œ ํ™•์‹คํ•œ ์ดํ•ด๊ฐ€ ๊ณง ์—ฌ๋Ÿฌ๋ถ„์„ ์ง„์ •ํ•œ ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ์ „๋ฌธ๊ฐ€๋กœ ์ด๋Œ์–ด ์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค!

๐Ÿ’ก CTA: ์˜ค๋Š˜ ๋ฐฐ์šด ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ? ์˜ˆ์ œ ํฌํ•จ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ž์‹ ๋งŒ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด ๋ฆฌ์ŠคํŠธ ๋ฉ”์„œ๋“œ๋ฅผ ์ง์ ‘ ์ ์šฉํ•ด ๋ณด์„ธ์š”! ๊ถ๊ธˆํ•œ ์ ์ด ์žˆ๋‹ค๋ฉด ์•„๋ž˜ ๋Œ“๊ธ€๋กœ ์งˆ๋ฌธํ•ด ์ฃผ์‹œ๋ฉด ์นœ์ ˆํ•˜๊ฒŒ ๋‹ต๋ณ€ํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ธ€์—์„œ๋Š” 'ํŒŒ์ด์ฌ ํŠœํ”Œ'์— ๋Œ€ํ•ด ๋‹ค๋ค„๋ณผ ์˜ˆ์ •์ด๋‹ˆ ๊ธฐ๋Œ€ํ•ด ์ฃผ์„ธ์š”!


FAQ (์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ)

Q1: ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ์™€ ํŠœํ”Œ์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

A: ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€ **๋ณ€๊ฒฝ ๊ฐ€๋Šฅ์„ฑ(Mutability)**์ž…๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ๋Š” ์ƒ์„ฑ ํ›„์—๋„ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€, ์‚ญ์ œ, ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, **ํŠœํ”Œ(Tuple)**์€ ์ƒ์„ฑ๋œ ํ›„์—๋Š” ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค (Immutable). ๋”ฐ๋ผ์„œ ํŠœํ”Œ์€ ์ˆ˜์ •๋˜์ง€ ์•Š์•„์•ผ ํ•  ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณด๊ด€ํ•  ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

Q2: ๋ฆฌ์ŠคํŠธ์—์„œ remove()์™€ pop() ๋ฉ”์„œ๋“œ์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

A: remove(value)๋Š” ๋ฆฌ์ŠคํŠธ์—์„œ ํŠน์ • ๊ฐ’์„ ์ฐพ์•„ ์ฒซ ๋ฒˆ์งธ๋กœ ๋ฐœ๊ฒฌ๋˜๋Š” ์š”์†Œ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด, pop(index)๋Š” ๋ฆฌ์ŠคํŠธ์—์„œ ํŠน์ • ์ธ๋ฑ์Šค์— ์žˆ๋Š” ์š”์†Œ๋ฅผ ์‚ญ์ œํ•˜๋ฉฐ, ์ด ๋•Œ ์‚ญ์ œ๋œ ์š”์†Œ์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Q3: ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ์ •๋ง ๋นจ๋ผ์ง€๋‚˜์š”?

A: ๋„ค, ์ผ๋ฐ˜์ ์œผ๋กœ ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ผ๋ฐ˜์ ์ธ for ๋ฃจํ”„์™€ append() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋น ๋ฆ…๋‹ˆ๋‹ค. ์ด๋Š” ์ปดํ”„๋ฆฌํ—จ์…˜์ด ๋‚ด๋ถ€์ ์œผ๋กœ ์ตœ์ ํ™”๋œ C ์ฝ”๋“œ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

Q4: ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ๋Š” ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋™์‹œ์— ๋‹ด์„ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์„ฑ๋Šฅ์— ๋ฌธ์ œ๊ฐ€ ์—†๋‚˜์š”?

A: ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ๋Š” ๋‹ค์–‘ํ•œ ํƒ€์ž…์˜ ๊ฐ์ฒด๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ๊ฐ ๊ฐ์ฒด์— ๋Œ€ํ•œ **์ฐธ์กฐ(Reference)**๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ํฐ ์„ฑ๋Šฅ ๋ฌธ์ œ๊ฐ€ ์—†์œผ๋‚˜, ๋งŒ์•ฝ ์ˆ˜์น˜ ๋ฐ์ดํ„ฐ๋งŒ์„ ๋Œ€๋Ÿ‰์œผ๋กœ ๋‹ค๋ค„์•ผ ํ•˜๊ณ  ๊ทนํ•œ์˜ ์„ฑ๋Šฅ์ด ํ•„์š”ํ•˜๋‹ค๋ฉด NumPy ๋ฐฐ์—ด๊ณผ ๊ฐ™์€ ์ „๋ฌธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.

๋Œ“๊ธ€