본문 바로가기
카테고리 없음

파이썬 리스트 슬라이싱 종류

by artra 2023. 7. 5.
반응형
num = [0123456789]
print(len(num))
# 10
print(num[0], num[1], num[9])
# 0 1 9
print(num[0:], num[1:])
# num[0:] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# num[1:] = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(num[:9], num[:10]) # num[9]와 num[:9]는 다름
# num[:9] = [0, 1, 2, 3, 4, 5, 6, 7, 8]
# num[:10] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# num[9]는 주소 0~9 총 10개
# num[:9]는 [0:1] 으로 시작 하는 것과 같기 때문에
# 한개가 밀려 있다고 생각 하면 됨 또는 개수로 봐야 하기 때문에
# [0:10] 까지 해야 0~9까지 전체가 나옴
 
 
# 시작 인덱스 변경
print("\n 1. Start index changed:")
# [ 처음 : 끝까지 ] or [ - 끝 : 처음]
print(num[0:], num[1:], num[4:], num[9:], num[-1:], num[-4:], num[-10:])
# num[0:] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# num[1:] = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# num[4:] = [4, 5, 6, 7, 8, 9]
# num[9:] = [9]
# num[-1:] = [9]
# num[-4:] = [6, 7, 8, 9]
# num[-10:] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 
# 종료 인덱스 변경
print("\n 2. End index changed:")
# [처음 : 지정 위치] or [ 처음 : -지정 위치 ]
print(num[:0], num[:1], num[:4], num[:9], num[:-1], num[:-4], num[:-10])
# num[:0] = []
# num[:1] = [0]
# num[:4] = [0, 1, 2, 3]
# num[:9] = [0, 1, 2, 3, 4, 5, 6, 7, 8]
# num[:-1] = [0, 1, 2, 3, 4, 5, 6, 7, 8]
# num[:-4] = [0, 1, 2, 3, 4, 5]
# num[:-10] = []
 
# 간격(step) 변경
print("\n 3. Step changed:")
# [ 처음 : 끝까지 : 간격], [ 처음 : 끝까지 : -간격]
print(num[::1], num[::2], num[::3], num[::-1], num[::-2], num[::-3])
# num[::1] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# num[::2] = [0, 2, 4, 6, 8]
# num[::3] = [0, 3, 6, 9]
# num[::-1] = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
# num[::-2] = [9, 7, 5, 3, 1]
# num[::-3] = [9, 6, 3, 0]
 
# 시작 및 종료 인덱스 변경
print("\n 4. Start and end index changed:")
print(num[0:1], num[2:5], num[3:10], num[0:-1], num[1:-1], num[5:-3])
# num[0:1] = [0]
# num[2:5] = [2, 3, 4]
# num[3:9] = [3, 4, 5, 6, 7, 8, 9]
# num[0:-1] = [0, 1, 2, 3, 4, 5, 6, 7, 8]
# num[1:-1] = [1, 2, 3, 4, 5, 6, 7, 8]
# num[5:-3] = [5, 6]
 
# 간격(step) 및 시작 및 종료 인덱스 변경
print("\n 5. Start and end index with step changed:")
print(num[:10:1], num[:8:2], num[:7:3], num[:-10:-1], num[:-8:-2], num[:-7:-3])
# num[:9:1] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# num[:8:2] = [0, 2, 4, 6]
# num[:7:3] = [0, 3, 6]
# num[:-9:-1] = [9, 8, 7, 6, 5, 4, 3, 2, 1]
# num[:-8:-2] = [9, 7, 5, 3]
# num[:-7:-3] = [9, 6]
 
# 시작-끝 인덱스와 간격(step) 변경
print("\n 6. Start-End Index and Step changed:")
#[시작값 : 끝나는값 : 간격]
print(num[0:10:3], num[1:10:2], num[2:8:3], num[-1:-10:-3], num[-2:-9:-2])
# num[0:10:3] = [0, 3, 6, 9]
# num[1:9:2] = [1, 3, 5, 7, 9]
# num[2:8:3] = [2, 5]
# num[-1:-9:-3] = [9, 6, 3]
# num[-2:-8:-2] = [8, 6, 4, 2]
cs
반응형

댓글