CodeGym /์ž๋ฐ” ์ฝ”์Šค /Python SELF KO /์„œ๋ธŒ ํŠœํ”Œ ๊ฐ€์ ธ์˜ค๊ธฐ

์„œ๋ธŒ ํŠœํ”Œ ๊ฐ€์ ธ์˜ค๊ธฐ

Python SELF KO
๋ ˆ๋ฒจ 8 , ๋ ˆ์Šจ 3
์‚ฌ์šฉ ๊ฐ€๋Šฅ

12.1 ์ธ๋ฑ์Šค ๋ฒ”์œ„

์„œ๋ธŒ ํŠœํ”Œ์„ ์–ป๋Š” ์ฝ”๋“œ๋Š” ์„œ๋ธŒ ๋ฆฌ์ŠคํŠธ๋ฅผ ์–ป๋Š” ์ฝ”๋“œ์™€ ๋งค์šฐ ๋น„์Šทํ•ด. ์ด ์ ์—์„œ ํŠœํ”Œ์€ ๋ฆฌ์ŠคํŠธ์™€ ๋‹ฎ์•˜์–ด. ๋‚ด์šฉ์„ ๋ฐ˜๋ณตํ•˜๊ณ  ์‹ถ์ง„ ์•Š์ง€๋งŒ, ๋ฐ˜์€ ๋ฐ˜๋ณต์ด๋‹ˆ๊นŒ...

์„œ๋ธŒ ํŠœํ”Œ์„ ์–ป๋Š” ๊ฒƒ, ์ฆ‰ slicing์€ ํŠœํ”Œ์˜ ์ผ๋ถ€๋ถ„์„ ์ถ”์ถœํ•ด์„œ ์ƒˆ๋กœ์šด ํŠœํ”Œ์„ ๋งŒ๋“œ๋Š” ๊ฑธ ๋งํ•ด. ์ด ๊ณผ์ •์€ ํŠœํ”Œ์— ์ €์žฅ๋œ ํŠน์ • ๋ฐ์ดํ„ฐ ๋ถ€๋ถ„์„ ๋‹ค๋ค„์•ผ ํ•  ๋•Œ ํŠนํžˆ ์œ ์šฉํ•ด.

์Šฌ๋ผ์ด์Šค ๋ฌธ๋ฒ•

์Šฌ๋ผ์ด์Šค๋Š” ๋Œ€๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, ์•ˆ์— ์‹œ์ž‘๊ณผ ๋ ์ธ๋ฑ์Šค๋ฅผ ์ฝœ๋ก ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ง€์ •ํ•ด. ์‹œ์ž‘ ์ธ๋ฑ์Šค๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด, ์Šฌ๋ผ์ด์Šค๋Š” ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ณ ; ๋ ์ธ๋ฑ์Šค๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด, ์Šฌ๋ผ์ด์Šค๋Š” ํŠœํ”Œ์˜ ๋๊นŒ์ง€ ์ง„ํ–‰๋ผ.

ํŠœํ”Œ ์Šฌ๋ผ์ด์Šค๋Š” tuple[start:stop:step] ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ:

  • start โ€” ์‹œ์ž‘ ์š”์†Œ์˜ ์ธ๋ฑ์Šค(ํฌํ•จ);
  • stop โ€” ๋งˆ์ง€๋ง‰ ์š”์†Œ์˜ ์ธ๋ฑ์Šค(ํฌํ•จ ์•ˆ๋จ);
  • step โ€” ์š”์†Œ ์„ ํƒ์— ์‚ฌ์šฉ๋˜๋Š” ๊ฐ„๊ฒฉ.

์˜ˆ์ œ:


my_tuple = (0, 1, 2, 3, 4, 5)
sub_tuple = my_tuple[1:4]  # ์ธ๋ฑ์Šค 1๋ถ€ํ„ฐ 3๊นŒ์ง€ ์š”์†Œ๋ฅผ ๊ฐ€์ง„ ์„œ๋ธŒ ํŠœํ”Œ์„ ๊ฐ€์ ธ์˜จ๋‹ค
print(sub_tuple) # (1, 2, 3)์„ ์ถœ๋ ฅํ•œ๋‹ค
            
sub_tuple_with_step = my_tuple[0:6:2]  # 0์—์„œ 5๊นŒ์ง€์˜ ๊ฐ ๋‘ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค
print(sub_tuple_with_step) # (0, 2, 4)๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค 
        

๋งŒ์•ฝ start๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์€ 0์ด๊ณ , stop์ด ์ง€์ •๋˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์€ len(tuple)์ด์•ผ. step์€ ๊ธฐ๋ณธ์ ์œผ๋กœ 1์ด์•ผ.

์˜ˆ์ œ:


# 0๋ถ€ํ„ฐ 5๊นŒ์ง€ ์š”์†Œ๋ฅผ ๊ฐ€์ง„ ํŠœํ”Œ์„ ๋งŒ๋“ ๋‹ค
my_tuple = (0, 1, 2, 3, 4, 5)

# ์›๋ž˜ ํŠœํ”Œ์˜ ๋‘ ๋ฒˆ์งธ ์š”์†Œ๋ถ€ํ„ฐ ์ƒˆ๋กœ์šด ํŠœํ”Œ์„ ๋งŒ๋“ ๋‹ค
sub_tuple = my_tuple[1:] 
print(sub_tuple)  # ์ถœ๋ ฅ: (1, 2, 3, 4, 5)

# ์›๋ž˜ ํŠœํ”Œ์˜ ์‹œ์ž‘๋ถ€ํ„ฐ ๋„ค ๋ฒˆ์งธ ์š”์†Œ๊นŒ์ง€(์ธ๋ฑ์Šค 4) ์ƒˆ๋กœ์šด ํŠœํ”Œ์„ ๋งŒ๋“ ๋‹ค, ๊ฐ„๊ฒฉ 1(๊ธฐ๋ณธ๊ฐ’)
sub_tuple_with_step = my_tuple[:5] 
print(sub_tuple_with_step)  # ์ถœ๋ ฅ: (0, 1, 2, 3, 4)

12.2 ์Œ์ˆ˜ ์ธ๋ฑ์Šค

Python์—์„œ ์Œ์ˆ˜ ์ธ๋ฑ์Šค๋Š” -1์—์„œ ์‹œ์ž‘ํ•˜๋ฉฐ, ์ด๋Š” ๋ฆฌ์ŠคํŠธ(๋˜๋Š” ํŠœํ”Œ)์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ๋‚˜ํƒ€๋‚ด. -2๋Š” ๋์—์„œ ๋‘ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ , ์ด๋Ÿฐ ์‹์œผ๋กœ ๊ณ„์†๋ผ. ์Œ์ˆ˜ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŠœํ”Œ์˜ ๋งˆ์ง€๋ง‰๋ถ€ํ„ฐ ์š”์†Œ์— ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด, ์ธ๋ฑ์Šค๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ณ„์‚ฐํ•  ํ•„์š”๊ฐ€ ์—†์–ด.

์‚ฌ์šฉ ์˜ˆ์ œ

์Šฌ๋ผ์ด์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์Œ์ˆ˜ ์ธ๋ฑ์Šค ์‚ฌ์šฉ์„ ์‚ดํŽด๋ณด์ž. ์˜ˆ๋ฅผ ๋“ค์–ด, ์šฐ๋ฆฌ์—๊ฒŒ ๊ฐ’์ด ํฌํ•จ๋œ ํŠœํ”Œ์ด ์žˆ๋‹ค๊ณ  ํ•ด๋ณด์ž:


my_tuple = (10, 20, 30, 40, 50, 60, 70, 80)

ํŠœํ”Œ์˜ ๋์—์„œ ์ค‘๊ฐ„๊นŒ์ง€ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๋Š” ์„œ๋ธŒ ํŠœํ”Œ์„ ์–ป์œผ๋ ค๋ฉด ์Œ์ˆ˜ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด.


sub_tuple = my_tuple[-3:-1]
print(sub_tuple) # (60, 70)์„ ์ถœ๋ ฅํ•œ๋‹ค

๋”ฐ๋ผ์„œ my_tuple[-3:-1]์€ ์ธ๋ฑ์Šค -3(๋์—์„œ ์„ธ ๋ฒˆ์งธ)์—์„œ -1(๋งˆ์ง€๋ง‰ ์š”์†Œ๋Š” ํฌํ•จ ์•ˆ๋จ)๊นŒ์ง€์˜ ์š”์†Œ๋ฅผ ์„ ํƒํ•˜๋ฉฐ, (60, 70)์„ ํฌํ•จํ•˜๋Š” ํŠœํ”Œ์„ ๋ฐ˜ํ™˜ํ•ด.

ํŠœํ”Œ์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ ๊ฐ€์ ธ์˜ค๊ธฐ:


my_tuple = (10, 20, 30, 40, 50)
last_element = my_tuple[-1]
print(last_element) # 50์„ ์ถœ๋ ฅํ•œ๋‹ค 
    

์—ฌ๊ธฐ์„œ, my_tuple[-1]์€ ํ•ญ์ƒ ํŠœํ”Œ์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” ์ ์ด ์•„์ฃผ ํŽธ๋ฆฌํ•ด, ํŠนํžˆ ํŠœํ”Œ์˜ ์š”์†Œ ์ˆ˜๋ฅผ ๋ชจ๋ฅผ ๋•Œ ๋ง์ด์•ผ.

ํŠœํ”Œ์˜ ์š”์†Œ๋ฅผ ๋’ค์ง‘๊ธฐ:


my_tuple = (10, 20, 30, 40, 50)
reversed_tuple = my_tuple[::-1]
print(reversed_tuple) # (50, 40, 30, 20, 10)์„ ์ถœ๋ ฅํ•œ๋‹ค 
    

์Šฌ๋ผ์ด์Šค [::-1]์„ ์‚ฌ์šฉํ•˜๋ฉด ํŠœํ”Œ์˜ ์š”์†Œ ์ˆœ์„œ๋ฅผ ์‰ฝ๊ฒŒ ๊ฑฐ๊พธ๋กœ ๋’ค์ง‘์„ ์ˆ˜ ์žˆ์–ด, ์š”์†Œ๋ฅผ ๋ฐ˜๋Œ€ ์ˆœ์„œ๋กœ ์ •๋ ฌํ•œ ์ƒˆ๋กœ์šด ํŠœํ”Œ์„ ์–ป์„ ์ˆ˜ ์žˆ์ง€.

12.3 ํŠœํ”Œ์— ์š”์†Œ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ

ํŠœํ”Œ์— ์š”์†Œ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์€ ์š”์†Œ๊ฐ€ ํŠœํ”Œ์— ์กด์žฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ธฐ๋ณธ์ ์ธ ์ž‘์—…์ด์•ผ. ์ด ์ž‘์—…์€ ์—ฐ์‚ฐ์ž in์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฃจ์–ด์ง€๋ฉฐ, ์š”์†Œ๊ฐ€ ํŠœํ”Œ์— ์กด์žฌํ•˜๋ฉด True๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด False๋ฅผ ๋ฐ˜ํ™˜ํ•ด.

์—ฐ์‚ฐ์ž in ์‚ฌ์šฉํ•˜๊ธฐ

in ์—ฐ์‚ฐ์ž๋Š” ์š”์†Œ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ„๋‹จํ•˜๊ณ  ์ง๊ด€์ ์ธ ๋ฐฉ๋ฒ•์ด์•ผ:


my_tuple = (1, 2, 3, 4, 5)
element = 3
if element in my_tuple:
    print(f"{element} is in the tuple.")
else:
    print(f"{element} is not in the tuple.")
    

์š”์†Œ๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ:

๋งŒ์•ฝ ํŠœํ”Œ์— ์š”์†Œ๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ๊ทธ๋ƒฅ not in ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ผ:


names = ('Alice', 'Bob', 'Charlie')
search_name = 'Alice'
if search_name not in names:
    print(f"{search_name} ํŠœํ”Œ์— ์—†์–ด.")
else:
    print(f"{search_name} ํŠœํ”Œ์— ์žˆ์–ด.")
    

๋ฆฌ์ŠคํŠธ ์ž‘์—…๊ณผ ๊ฑฐ์˜ ๋‹ค๋ฅด์ง€ ์•Š์•„โ€”์ด๊ฒŒ ๋ฐ”๋กœ Python์˜ ๋ณดํŽธ์„ฑ๊ณผ ๋‹จ์ˆœํ•จ์ด์ง€.

์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION