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의 보편성과 단순함이지.
GO TO FULL VERSION