6.2. 튜플
튜플은 리스트와 유사한 자료구조이지만, 한 번 생성된 요소를 변경할 수 없는 불변(immutable) 자료구조입니다. 튜플은 소괄호(())를 사용하여 생성하며, 각 요소는 쉼표(,)로 구분합니다. 튜플은 리스트에 비해 더 빠른 처리 속도를 가지며, 변경할 수 없다는 특성으로 인해 읽기 전용 데이터에 적합합니다. 또한, 튜플은 중복된 값이 있어도 상관없습니다.
6.2.1. 튜플 생성과 인덱싱
튜플의 생성 방법과 인덱싱 방법을 살펴보겠습니다.
# 튜플 생성
my_tuple = (1, 2, 3, "banana", 5.5)
# 단일 요소 튜플 생성
single_tuple = (3,)
# 괄호 없이 튜플 생성
no_parentheses_tuple = 1, 2, 3
# 인덱싱
print(my_tuple[0]) # 1
print(my_tuple[3]) # "banana"
print(my_tuple[-1]) # 5.5
튜플의 인덱싱은 리스트와 동일하게 작동합니다. 인덱스는 0부터 시작하며, 음수 인덱스를 사용하여 뒤에서부터 접근할 수도 있습니다. 튜플은 변경할 수 없으므로, 한 번 생성된 요소를 변경하려고 하면 오류가 발생합니다.
# 변경 불가능한 튜플
my_tuple = (1, 2, 3)
my_tuple[0] = 0 # 오류 발생
6.2.2. 튜플 슬라이싱
튜플의 일부분을 잘라내는 슬라이싱에 대해 알아보겠습니다. 슬라이싱은 콜론(:)을 사용하여 시작 인덱스와 끝 인덱스를 지정합니다. 끝 인덱스는 포함되지 않습니다.
my_tuple = (0, 1, 2, 3, 4, 5)
# 슬라이싱
sub_tuple = my_tuple[1:4] # (1, 2, 3)
print(sub_tuple)
# 시작 인덱스와 끝 인덱스 생략
print(my_tuple[:3]) # (0, 1, 2)
print(my_tuple[3:]) # (3, 4, 5)
# 음수 인덱스를 사용한 슬라이싱
print(my_tuple[:-1]) # (0,1, 2, 3, 4)
print(my_tuple[-3:]) # (3, 4, 5)
#스텝을 사용한 슬라이싱
print(my_tuple[::2]) # (0, 2, 4)
6.2.3. 튜플 메소드
튜플은 변경할 수 없기 때문에 메서드가 리스트에 비해 제한적입니다. 튜플에서 주로 사용하는 메서드는 `count()`와 `index()`입니다.
- count() : 튜플 내에서 특정 요소가 몇 번 나타나는지 세는 메소드입니다.
- index() : 튜플 내에서 특정 요소의 위치(인덱스)를 찾는 메서드입니다.
my_tuple = (1, 2, 2, 3, 4, 4, 4, 5)
# count() 메소드 사용
count_2 = my_tuple.count(2) # 2
print("2의 개수:", count_2)
count_4 = my_tuple.count(4) # 3
print("4의 개수:", count_4)
# index() 메소드 사용
index_3 = my_tuple.index(3) # 3
print("3의 인덱스:", index_3)
index_5 = my_tuple.index(5) # 7
print("5의 인덱스:", index_5)
6.2.4. 튜플 패킹과 언패킹
튜플 패킹은 여러 개의 값을 하나의 튜플로 묶는 것을 말합니다. 튜플 언패킹은 튜플의 요소를 여러 개의 변수에 할당하는 것을 말합니다. 패킹과 언패킹을 통해 코드를 간결하게 작성할 수 있습니다.
# 튜플 패킹
packed_tuple = 1, 2, 3, 4
print(packed_tuple) # (1, 2, 3, 4)
# 튜플 언패킹
a, b, c, d = packed_tuple
print(a, b, c, d) # 1 2 3 4
# 값 교환하기
x = 10
y = 20
x, y = y, x
print(x, y) # 20 10
이렇게 튜플은 불변한 특성을 가진 자료구조로서, 리스트와 비슷한 연산을 지원하면서도 읽기 전용 데이터에 더 적합한 선택입니다. 튜플을 이용하여 함수의 다중 반환값, 딕셔너리의 키, 데이터 구조의 구성 등 다양한 활용이 가능합니다.
2023.05.03 - [프로그래밍/파이썬(Python) 기초부터 ~] - [파이썬(PYTHON)] 기본적인 자료구조 - 리스트
반응형
'GD's IT Lectures : 기초부터 시리즈 > 파이썬(Python) 기초부터 ~' 카테고리의 다른 글
[파이썬(PYTHON)] 기본적인 자료구조 - 집합 (0) | 2023.05.03 |
---|---|
[파이썬(PYTHON)] 기본적인 자료구조 - 딕셔너리 (0) | 2023.05.03 |
[파이썬(PYTHON)] 기본적인 자료구조 - 리스트 (0) | 2023.05.03 |
[파이썬(PYTHON)] 에러 처리와 예외 처리 (0) | 2023.05.03 |
[파이썬(PYTHON)] 파일 입출력 (0) | 2023.05.03 |
댓글