๐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]