Tuple:
파이썬에서 List와 유사한 Tuple 이란 객체가 존재 합니다.
이 둘간의 가장 큰 차이점은 Tuple은 일단 한번 생성이 되면 변경이 불가능 하다는 것 입니다.
한번 예제를 통해 알아 보도록 하겠습니다.
Creating Tuples
List 생성시 []를 사용한다는것 기억 하시나요? Tuple은 ()를 사용하여 생성 하고, () 없이 생성 또한 가능 합니다.
Example:
# Creating a tuple with parentheses
fruits = ("apple", "banana", "cherry")
# Creating a tuple without parentheses
colors = "red", "green", "blue"
Accessing Tuple Elements
Tuple 인자에 접근하는 방법은 List와 동일하게 []를 사용합니다.
Example:
print(fruits[1]) # Output: banana
print(colors[2]) # Output: blue
Immutability of Tuples
앞서 말씀 드린 바와 같이, Tuple은 변경 불가하기 때문에, 아래와 같이 변경을 시도하는 경우 파이썬에서 에러를 발생 시키게 됩니다.
Example:
# This will result in an error
# fruits[0] = "strawberry"
Why Use Tuples?
그렇다면 List를 쓰면 될것 같은데, Tuple을 써야 하는 경우는 어떤 경우일까요?
- Efficiency:
Tuple은 List에 비해 Memory 효율성이 높습니다.
Python은 Tuple이 생성 될때 크기가 변하지 않을 것을 알기 때문에, 메모리를 고정 할수 있고, 최적화가 가능 합니다.
List의 경우 향후 항목들이 추가 되거나, 제거 되는 것이 가능하기 때문에 이러한 최적화가 불가능 합니다.
또한 인자를 Searching하는데 있어서, List보다 빠르게 수행이 가능 합니다. - Safety:
코드를 개발하다 보면, 의도적으로 User가 변경하지 못하도록 만들어야 하는 변수들이 있습니다.
C언어 에서는 이를 "const"라는 keyword를 통해서 해결 했는데, Python에서는 이런 경우, Tuple이 사용 가능 합니다.
이러한 이유로, 만약 인자들이 불변하다면, List보다는 Tuple을 사용하는게 더 효과적 입니다.
Tuple Methods
Tuple은 List에 비해 제공하는 Method가 한정적 이지만, Tuple에서 제공하는 몇가지 Method들을 살펴보면 다음과 같습니다.
- count(arg): arg에 해당하는 항목이 몇개 있는지 반환
Example:
my_tuple = (1, 2, 3, 1, 1, 4, 5) print(my_tuple.count(1)) # Output: 3
- index(arg): arg에 해당하는 항목이 몇번째 있는지 반환 하며, 여러개 있는 경우 가장 앞의 인자를 반환함.
Example:
my_tuple = (1, 2, 3, 4, 5) print(my_tuple.index(3)) # Output: 2
Tuple Operations
Tuple 자체는 변경이 불가능 하지만, operation을 이용하여 Tuple들을 합치거나, 반복하는 새로운 Tuple을 생성이 가능 하며, Tuple안에 item이 있는지 확인도 가능 합니다.
Example:
# Concatenation
new_tuple = fruits + colors
print(new_tuple) # Output: ('apple', 'banana', 'cherry', 'red', 'green', 'blue')
# Repetition
repeated_tuple = fruits * 2
print(repeated_tuple) # Output: ('apple', 'banana', 'cherry', 'apple', 'banana', 'cherry')
# Check if an item exists
print("apple" in fruits) # Output: True
오늘은 List객체와 유사하지만, 다른 특성을 가지고 있는 Tuple 객체에 대해 알아 보았습니다.
감사합니다.
'Python 기초 > 3. List 객체' 카테고리의 다른 글
3. Lists Slicing (0) | 2023.12.19 |
---|---|
2. List Methods (0) | 2023.12.18 |
1. List Class 소개 (0) | 2023.12.17 |