๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Language/Python

[Python]ํŒŒ์ด์ฌ ์ธ๋ฑ์‹ฑ๊ณผ ์Šฌ๋ผ์ด์‹ฑ: ๋ฐ์ดํ„ฐ ์ ‘๊ทผ๊ณผ ์ถ”์ถœ์˜ ํ•ต์‹ฌ ๊ธฐ์ˆ 

by YJ Dev 2024. 3. 26.
728x90
๋ฐ˜์‘ํ˜•
SMALL

python์—์„œ ์ธ๋ฑ์‹ฑ์€ ๋ฌธ์ž์—ด์ด๋‚˜ ๋ฆฌ์ŠคํŠธ ๋‚ด๋ถ€ ์š”์†Œ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜๋Š” ์—ฐ์‚ฐ์ž์ด๋ฉฐ, ์Šฌ๋ผ์ด์‹ฑ์€ ๋ฌธ์ž์—ด์ด๋‚˜ ๋ฆฌ์ŠคํŠธ์˜ ํŠน์ • ๋ฒ”์œ„๋ฅผ ์„ ํƒํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ์ž์ž…๋‹ˆ๋‹ค.

python ์ธ๋ฑ์‹ฑ๊ณผ์Šฌ๋ผ์ด์‹ฑ์€ ํŠนํžˆ ์ปฌ๋ ‰์…˜ ์ž๋ฃŒํ˜•์ธ ๋ฆฌ์ŠคํŠธ์—์„œ ๋งŽ์ด ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๋‚ด์šฉ์€ ์•„๋ž˜ ํฌ์ŠคํŒ…์„ ํ™•์ธํ•ด ์ฃผ์„ธ์š” ๐Ÿ˜Š

" "

[ํŒŒ์ด์ฌ]๋ฆฌ์ŠคํŠธ(list)์™€ ํŠœํ”Œ(tuple)

๋ชฉ์ฐจ 1. ์ปฌ๋ ‰์…˜ ์ž๋ฃŒํ˜•์ด๋ž€ 2. list 3. tuple 4. list์™€ tuple ๋น„๊ต 5. ํ•ต์‹ฌ๋‚ด์šฉ ์ง€๋‚œ ์‹œ๊ฐ„์—๋Š” ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋Š”๋ฐ์š”! ์˜ค๋Š˜์€ ํŒŒ์ด์ฌ ์ปฌ๋ ‰์…˜ ์ž๋ฃŒํ˜• ์ค‘ ๋ฆฌ์ŠคํŠธ(list)์™€ ํŠœํ”Œ(tuple)์— ๋Œ€ํ•ด ์•Œ์•„

creativevista.tistory.com

์ธ๋ฑ์‹ฑ๊ณผ ์Šฌ๋ผ์ด์‹ฑ


1. ๋ฌธ์ž์—ด ์ธ๋ฑ์‹ฑ๐Ÿ“Ž

์ธ๋ฑ์‹ฑ์€ ๋ฌธ์ž ์„ ํƒ ์—ฐ์‚ฐ์ž์ž…๋‹ˆ๋‹ค. ๋ฌธ์ž ์„ ํƒ ์—ฐ์‚ฐ์ž๋Š” ๋ฌธ์ž์—ด ๋‚ด๋ถ€์˜ ๋ฌธ์ž ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜๋Š” ์—ฐ์‚ฐ์ž์ž…๋‹ˆ๋‹ค.

๋Œ€๊ด„ํ˜ธ[ ] ์•ˆ์— ์„ ํƒํ•  ๋ฌธ์ž์˜ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋ฉฐ, ์ด ์ˆซ์ž๋ฅผ ์ธ๋ฑ์Šค๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

ํŒŒ์ด์ฌ์—์„œ ์ธ๋ฑ์Šค๋Š” ์ˆซ์ž๋ฅผ 0๋ถ€ํ„ฐ ์…‰๋‹ˆ๋‹ค.

p y t h o n
[0] [1] [2] [3] [4] [5]

๋Œ€๊ด„ํ˜ธ ์•ˆ์˜ ์ˆซ์ž๋ฅผ ์Œ์ˆ˜๋กœ ์ž…๋ ฅํ•˜๋ฉด ๋’ค์—์„œ๋ถ€ํ„ฐ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด์˜ ๋งˆ์ง€๋ง‰์€ -1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

p y t h o n
[-6] [-5] [-4] [-3] [-2] [-1]


๋˜ํ•œ ๊ณต๋ฐฑ๋„ ๊ธ€์ž์ด๋ฏ€๋กœ ์ธ๋ฑ์‹ฑ์— ํฌํ•จ์ด ๋ฉ๋‹ˆ๋‹ค.

a = 'My python'
print(a[0]) # M
print(a[1]) # y
print(a[2]) # 
print(a[3]) # p
print(a[4]) # y
print(a[5]) # t
print(a[6]) # h
print(a[7]) # o
print(a[8]) # n

2. ๋ฌธ์ž์—ด ์Šฌ๋ผ์ด์‹ฑ๐Ÿ•

๋ฌธ์ž์—ด์˜ ์Šฌ๋ผ์ด์‹ฑ์€ ํŠน์ • ๋ฒ”์œ„๋ฅผ ์ถ”์ถœํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ์ž์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋ฌธ์ž์—ด์˜ ๋‘ ๋ฒˆ์งธ ๋ฌธ์ž๋ถ€ํ„ฐ ๋„ค ๋ฒˆ์งธ ๋ฌธ์ž๊นŒ์ง€ ์„ ํƒํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฒ”์œ„๋Š” ๋Œ€๊ด„ํ˜ธ [ ] ์•ˆ์— ์œ„์น˜๋ฅผ ์ฝœ๋ก  : ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

ํŒŒ์ด์ฌ์—์„œ๋Š” ๋ฒ”์œ„ ์ง€์ • ์‹œ ๋งˆ์ง€๋ง‰ ์ˆซ์ž๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ฆ‰, [์‹œ์ž‘ ๋ฒˆํ˜ธ : ๋ ๋ฒˆํ˜ธ + 1] ์ด๋ ‡๊ฒŒ ์ž…๋ ฅํ•˜๋ฉด ์›ํ•˜๋Š” ์š”์†Œ๊นŒ์ง€ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

p y t h o n
[0] [1] [2] [3] [4] [5]
print('python'[1:3]) # yt
print('python'[2:5]) # tho


๋˜, ๋ฌธ์ž์—ด ๋ฒ”์œ„ ์„ ํƒ ์—ฐ์‚ฐ์ž๋Š” ๋Œ€๊ด„ํ˜ธ ์•ˆ์— ๋„ฃ๋Š” ์ˆซ์ž
๋‘˜ ์ค‘ ํ•˜๋‚˜ ๋˜๋Š” ๋ชจ๋‘ ์ƒ๋žตํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋’ค์˜ ๊ฐ’์„ ์ƒ๋žตํ•  ๋•Œ๋Š” ์ž๋™์œผ๋กœ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ๊ธ€์ž๊นŒ์ง€, ์•ž์˜ ๊ฐ’์„ ์ƒ๋žตํ•  ๋•Œ๋Š” ๊ฐ€์žฅ ์ฒซ ๋ฒˆ์งธ ๊ธ€์ž๊นŒ์ง€ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ˆซ์ž ๋ชจ๋‘๋ฅผ ์ƒ๋žต ํ•˜๋ฉด ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋ชจ๋‘๋ฅผ ์ง€์ •ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

print('python'[:]) # python
print('python'[:3]) # pyt
print('python'[2:]) # thon

3. ๋ฌธ์ž์—ด ๊ธธ์ด ๊ตฌํ•˜๊ธฐ๐Ÿ“

๋ฌธ์ž์—ด์˜ ์ˆ˜๋ฅผ ๋„˜๋Š” ๊ธ€์ž๋ฅผ ์„ ํƒํ•  ๋•Œ IndexError ์˜ˆ์™ธ๋ฅผ ๋งŒ๋‚˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•˜์—ฌ ๋ฏธ๋ฆฌ ๋ฌธ์ž์—ด์˜ ์ˆ˜๋ฅผ ์•Œ๊ฒŒ ๋œ๋‹ค๋ฉด IndexError ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค์ง€ ์•Š์„ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•  ๋•Œ๋Š” len() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

len() ํ•จ์ˆ˜์˜ () ๋‚ด๋ถ€์— ๋ฌธ์ž์—ด์„ ๋„ฃ์œผ๋ฉด ๋ฌธ์ž์—ด์— ๋“ค์–ด์žˆ๋Š” ๋ฌธ์ž์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ์–ด์ค๋‹ˆ๋‹ค.

print(len('python')) # 6

4. ๋ฆฌ์ŠคํŠธ ์ธ๋ฑ์‹ฑ๐Ÿ“‘

๋ฌธ์ž์—ด ์ธ๋ฑ์‹ฑ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฆฌ์ŠคํŠธ ์ธ๋ฑ์‹ฑ ๋˜ํ•œ ๋Œ€๊ด„ํ˜ธ[ ] ์•ˆ์— ์„ ํƒํ•  ์š”์†Œ์˜ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋ฉฐ, ๋ฆฌ์ŠคํŠธ๋Š” ์ธ๋ฑ์‹ฑ์„ ์ด์ค‘์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

a = [1, 2, 'python', 'a', 'b', '์•ˆ๋…•', 'ํ•˜์„ธ์š”']
print(a[2]) # python
print(a[2][0]) # p


์œ„์™€ ๊ฐ™์ด a๋ผ๋Š” ๋ฆฌ์ŠคํŠธ์—์„œ a[2]๋ฅผ ์ง€์ •ํ•˜๋ฉด 'python'์„ ๊บผ๋‚ด์˜ค๊ณ 
a[2][0]์„ ์ง€์ •ํ•˜๋ฉด 2๋ฒˆ์งธ์—์„œ ๊ฐ€์ ธ์˜จ 'python'์—์„œ ๋‹ค์‹œ 0๋ฒˆ์งธ๋ฅผ ๊ฐ€์ ธ์™€ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.


๋ฆฌ์ŠคํŠธ ์•ˆ์— ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์ค‘์ฒฉ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

f = [1, 2, ['a', 'b', ['์•ˆ๋…•', 'ํ•˜์„ธ์š”']]]
print(f[2]) # ['a', 'b', ['์•ˆ๋…•', 'ํ•˜์„ธ์š”']]
print(f[2][2]) # ['์•ˆ๋…•', 'ํ•˜์„ธ์š”']
print(f[2][2][0]) # ์•ˆ๋…•


์œ„์™€ ๊ฐ™์ด f๋ผ๋Š” ๋ฆฌ์ŠคํŠธ์—์„œ f[2]๋ฅผ ์ง€์ •ํ•˜๋ฉด ['a', 'b', ['์•ˆ๋…•', 'ํ•˜์„ธ์š”']]์„ ๊บผ๋‚ด์˜ค๊ณ 

1 2 [ a b [ ์•ˆ๋…• ํ•˜์„ธ์š” ] ]
[0] [1] [2]


f[2][2]์„ ์ง€์ •ํ•˜๋ฉด 2๋ฒˆ์งธ์—์„œ ๊ฐ€์ ธ์˜จ ['a', 'b', ['์•ˆ๋…•', 'ํ•˜์„ธ์š”']] ์—์„œ ๋‹ค์‹œ 2๋ฒˆ์งธ๋ฅผ ๊ฐ€์ ธ์˜จ ํ›„

a b [ ์•ˆ๋…• ํ•˜์„ธ์š” ]
[0] [1] [2]


f[2][2][0]์„ ์ง€์ •ํ•˜๋ฉด 2๋ฒˆ์งธ์—์„œ ๊ฐ€์ ธ์˜จ
['a', 'b', ['์•ˆ๋…•', 'ํ•˜์„ธ์š”']] ์—์„œ ๋˜ 2๋ฒˆ์งธ์—์„œ ๊ฐ€์ ธ์˜จ ['์•ˆ๋…•', 'ํ•˜์„ธ์š”']์—์„œ ๋‹ค์‹œ 0๋ฒˆ์งธ๋ฅผ ๊ฐ€์ ธ์™€ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…• ํ•˜์„ธ์š”
[0] [1]

5. ๋ฆฌ์ŠคํŠธ ์Šฌ๋ผ์ด์‹ฑ๐Ÿฅช

๋ฆฌ์ŠคํŠธ ์Šฌ๋ผ์ด์‹ฑ๋„ ๋ฌธ์ž์—ด ์Šฌ๋ผ์ด์‹ฑ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํŠน์ • ์š”์†Œ์˜ ๋ฒ”์œ„๋ฅผ ์ถ”์ถœํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋ฉฐ ๋Œ€๊ด„ํ˜ธ [ ] ์•ˆ์— ์œ„์น˜๋ฅผ ์ฝœ๋ก  : ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ง€์ •ํ•˜๋ฉฐ ๋ฒ”์œ„ ์ง€์ • ์‹œ ๋งˆ์ง€๋ง‰ ์ˆซ์ž๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

b = [1, 2, 3, ['b', 'c', 'd'], 4, 5]
print(b[2:5]) # [3, ['b', 'c', 'd'], 4]
print(b[3][:2]) # ['b', 'c']


์œ„์™€ ๊ฐ™์ด b๋ผ๋Š” ๋ฆฌ์ŠคํŠธ์—์„œ b[2:5]๋ฅผ ์ง€์ •ํ•˜๋ฉด
2๋ฒˆ ์ธ๋ฑ์Šค ์š”์†Œ์ธ 3๋ถ€ํ„ฐ 5๋ฒˆ์งธ ์š”์†Œ ์•ž (๋งˆ์ง€๋ง‰ ์ˆซ์ž๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š์Œ)์˜ 4๋ฒˆ ์ธ๋ฑ์Šค ์š”์†Œ์ธ 4๊นŒ์ง€ [3, ['b', 'c', 'd'], 4]๋ฅผ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.

1 2 3 [ b c d ] 4 5
[0] [1] [2] [3] [4] [5]


์ด๋ฒˆ์—๋Š” b๋ผ๋Š” ๋ฆฌ์ŠคํŠธ์—์„œ b[3][:2]๋ฅผ ์ง€์ •ํ•˜๋ฉด
3๋ฒˆ ์ธ๋ฑ์Šค์˜ ์š”์†Œ์ธ ['b', 'c', 'd']์—์„œ

1 2 3 [ b c d ] 4 5
[0] [1] [2] [3] [4] [5]


๊ฐ€์žฅ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ์ธ b๋ถ€ํ„ฐ 2๋ฒˆ์งธ ์š”์†Œ ์•ž์˜ 1๋ฒˆ ์ธ๋ฑ์Šค ์š”์†Œ์ธ c๊นŒ์ง€ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.

1 2 3 [ b c d ] 4 5
[0] [1] [2] [3] [4] [5]
[0] [1] [2]

6. ํ•ต์‹ฌ๋‚ด์šฉ๐Ÿ‘€

์ธ๋ฑ์‹ฑ
์Šฌ๋ผ์ด์‹ฑ

728x90
๋ฐ˜์‘ํ˜•
LIST