Python Slice (슬라이스) 정리
# 리스트 예시
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 인덱스 2부터 5까지 (5 제외)
print(my_list[2:5]) # 출력: [2, 3, 4]
# 문자열 예시
text = "파이썬 슬라이싱"
print(text[0:3]) # "파이썬"
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 처음부터 5까지
print(my_list[:5]) # [0, 1, 2, 3, 4]
# 5부터 끝까지
print(my_list[5:]) # [5, 6, 7, 8, 9]
# 전체 시퀀스 (복사본 생성)
print(my_list[:]) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 처음부터 끝까지 2칸 간격으로
print(my_list[::2]) # [0, 2, 4, 6, 8]
# 인덱스 1부터 8까지 2칸 간격으로
print(my_list[1:8:2]) # [1, 3, 5, 7]
# 3칸 간격
text = "파이썬 슬라이싱 예제"
print(text[::3]) # "파 이 예"
# 파(0) 이(1) 썬(2) (3) 슬(4) 라(5) 이(6) 싱(7) (8) 예(9) 제(10)
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 뒤에서 5번째부터 뒤에서 2번째까지
print(my_list[-5:-1]) # [5, 6, 7, 8]
# 뒤에서 3번째 요소
print(my_list[-3]) # 7
# 0 1 2 3 4 5 6 7 8 9 (양수 인덱스)
# -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 (음수 인덱스)
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 역순으로 전체 리스트
print(my_list[::-1]) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
# 인덱스 8부터 3까지 역순으로
print(my_list[8:2:-1]) # [8, 7, 6, 5, 4, 3]
# 문자열 뒤집기
text = "파이썬"
print(text[::-1]) # "썬이파"
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 짝수 인덱스만
print(my_list[::2]) # [0, 2, 4, 6, 8]
# 홀수 인덱스만
print(my_list[1::2]) # [1, 3, 5, 7, 9]
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 인덱스 2~5까지를 새로운 값으로 바꾸기
my_list[2:6] = ['A', 'B', 'C', 'D']
print(my_list) # [0, 1, 'A', 'B', 'C', 'D', 6, 7, 8, 9]
# 홀수 인덱스만 0으로 변경
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
my_list[1::2] = [0, 0, 0, 0, 0]
print(my_list) # [0, 0, 2, 0, 4, 0, 6, 0, 8, 0]