๐Ÿ“–Sequence Slicing

์—ฐ์†์ ์ธ ๊ฐ์ฒด๋“ค์˜ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•ด ๊ฐ์ฒด๋“ค์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ• ์Šฌ๋ผ์ด์‹ฑ ์‹œ, ๊ฐ์ฒด์˜ ์ผ๋ถ€๋ถ„์„ ์ž˜๋ผ๋‚ธ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ

st : ์Šฌ๋ผ์ด์‹ฑ์„ ์‹œ์ž‘ํ•  ์‹œ์ž‘ idx en : ์Šฌ๋ผ์ด์‹ฑ์„ ๋๋‚ผ ๋ idx (en๋Š” ํฌํ•จํ•˜์ง€ ์•Š์Œ โ†’ ๊ฐ€์ ธ์˜ค๋ ค๋Š” ์ธ๋ฑ์Šค๋ณด๋‹ค 1์„ ๋” ํฌ๊ฒŒ ์„ค์ •) step : ๋ช‡ ๊ฐœ ์”ฉ ๋Š์–ด์„œ ๊ฐ€์ ธ์˜ฌ์ง€์™€ ๋ฐฉํ–ฅ์„ ์ •ํ•จ

seq[st:en:step]
  • st, en, step์€ ๋ชจ๋‘ ์–‘์ˆ˜์™€ ์Œ์ˆ˜๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ
  • st, en, step ์€ ์ „๋ถ€ ์ƒ๋žต ๊ฐ€๋Šฅ
  • list, string, range, tuple๊ณผ ๊ฐ™์€ sequence ์ž๋ฃŒํ˜•์—์„œ๋Š” ๋ชจ๋‘ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

index๊ฐ€ ์Œ์ˆ˜๋ผ๋ฉด?

๋’ค์—์„œ n๋ฒˆ์งธ ์›์†Œ๋ฅผ ๋œปํ•จ ์ฆ‰, -1์ด ์˜จ๋‹ค๋ฉด ๋’ค์—์„œ ์ฒซ๋ฒˆ์งธ ์›์†Œ
์–‘์ˆ˜ : ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ 0์„ ์‹œ์ž‘์œผ๋กœ ๋ฒˆํ˜ธ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋ฉฐ ๋งค๊น€ ์Œ์ˆ˜ : ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์œผ๋กœ -1์„ ์‹œ์ž‘์œผ๋กœ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ์†Œ์‹œํ‚ค๋ฉฐ ๋งค๊น€ (step๋„ ์Œ์ˆ˜๋ผ๋ฉด ์˜ค๋ฅธ์ชฝ โ†’ ์™ผ์ชฝ)

๐Ÿ“–์‚ฌ์šฉ ์˜ˆ์‹œ

๐Ÿ“ŽSequence์˜ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ Slicing

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 
nums[:]
nums[:10]
nums[0:10]
nums[:len(list)]
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  • st ๊ฐ’์„ ์ƒ๋žตํ•˜๋ฉด ๋งจ ์•ž์„ ์˜๋ฏธ
  • en๊ฐ’์„ ์ƒ๋žตํ•˜๋ฉด ๋งจ ๋’ค๋ฅผ ์˜๋ฏธ

๐Ÿ“ŽSequence์˜ ์ค‘๊ฐ„ ๋ถ€๋ถ„ Slicing

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 
nums[1:3] # [1, 2]
nums[6:] # [6, 7, 8, 9]

๐Ÿ“Žstep์„ ํ™œ์šฉํ•œ Slicing

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 
nums[::2] # [0, 2, 4, 6, 8]
 
nums[::-1] # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
 
nums[8:1:-1] # [8, 6, 4, 2]

๐Ÿ“Žst or en๊ฐ€ ์Œ์ˆ˜์ผ ๋•Œ์˜ Slicing

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 
nums[-5:-1] # [5, 6, 7, 8] (๋’ค์—์„œ 5๋ฒˆ์งธ~๋’ค์—์„œ 2๋ฒˆ์งธ)

๐Ÿ“–List Slicing

์•„๋ž˜ ์˜ˆ์ œ๋Š” list์ผ ๋•Œ๋งŒ ๊ฐ€๋Šฅ

๐Ÿ“Ž๋นˆ list๋ฅผ Slicing

nums = []
 
nums[:] # []
  • ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ
  • ๊ทธ๋ƒฅ ๋นˆ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜

๐Ÿ“ŽSlicing์„ ํ™œ์šฉํ•œ ๊ฐ’ ์ถ”๊ฐ€

nums = [0, 1, 2, 3]
 
nums[2:5] = ['a', 'b', 'c'] # [0, 1, 'a', 'b', 'c', 2, 3]

Slice ๋ฒ”์œ„์™€ ์ถ”๊ฐ€ํ•  ๊ฐ’์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋งž์ง€ ์•Š์œผ๋ฉด?

๊ทธ๋ƒฅ ๋งž์ง€ ์•Š๋Š”๋Œ€๋กœ st๋ถ€ํ„ฐ ์‚ฝ์ž…๋จ (์ถ”๊ฐ€ํ•  ๋•Œ en ์€ ์ค‘์š”ํ•˜์ง€ ์•Š์Œ)
๐Ÿ”–step์„ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ์—๋Š”? ๊ฐœ์ˆ˜ ์ผ์น˜๋ฅผ ํ•„์ˆ˜์ ์œผ๋กœ ํ•ด์•ผ ํ•จ

๐Ÿ“ŽSlicing์„ ํ™œ์šฉํ•œ ๊ฐ’ ์‚ญ์ œ

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 
del nums[2:5] # [0, 1, 5, 6, 7, 8, 9]