이번 글에서는 튜플에 대해서 알아보도록 하겠습니다.
튜플
튜플은 기본적으로 몇 가지 부분을 제외하면 리스트와 비슷한 자료형입니다.
먼저, 리스트와 튜플은 모두 여러 개의 자료들을 한 군데에 모아서 저장할 수 있습니다.
그리고 리스트는 데이터를 대괄호([ ])로 묶지만 튜플은 그냥 괄호( )로 묶습니다.
가장 큰 차이점은, 리스트는 안에 들어있는 값들을 수정, 삭제 등 내부 값을 바꿀 수 있지만 튜플은 내부의 값을 바꿀 수가 없습니다.
코드를 통해 튜플의 값을 변경하려고 시도해봅시다.
tu1 = (1, 2, 3)
tu1[1] = 10
이렇게 리스트에서처럼 인덱싱을 사용해 튜플의 값을 변경하려고 하면, 위와 같은 오류가 발생합니다.
이외에도 몇 가지 차이점이 더 있는데, 코드를 보면서 알아봅시다.
#tu1 = () 빈 튜플
#tu1 = (1,) 요소가 하나일 경우 뒤에 콤마를 붙여야 한다.
#tu1 = (1, 2, 3)
#tu1 = 1, 2, 3 괄호를 생략할 수 있다.
#tu1 = 1, 2, (1, 2, 3) 다중 튜플이 가능하다.
코드를 하나하나 잘 살펴보도록 합시다.
먼저, 괄호안에 아무것도 넣지 않으면 빈 튜플이 생성됩니다.
그리고 튜플의 특징 중 하나로, 요소가 하나만 존재하면 끝에 콤마(,)를 꼭 붙여줘야 한다는 점입니다.
실제로 튜플을 생성할 때 요소를 하나만 집어넣고, 콤마를 붙이지 않으면 다음과 같은 결과가 발생합니다.
tu1 = (1)
print(tu1)
print(type(tu1))
tu2 = (1,)
print(type(tu2))
기본적으로 tuple과 같이 콤마를 붙이지 않으면, 겉보기에는 정상적으로 튜플이 생성된 것처럼 보입니다.
하지만 실제로 type함수를 통해 해당 변수의 자료형을 확인해보면 int형으로 나오는 것을 볼 수 있습니다.
반면, tuple2와 같이 끝에 콤마(,)를 붙여주면 type함수를 통해 확인했을 때 정상적으로 tuple로 나오는 것을 볼 수 있습니다.
이런 몇 가지 차이점이 튜플과 리스트 사이에 존재하는데, 가장 큰 특징은 역시나 값의 변경 여부일것입니다.
때문에 프로그래밍 중에 값을 변경시켜야 하는 경우에는 리스트를, 변경시키면 안 될 경우에는 튜플을 구분해서 사용하시면 좋습니다.
튜플은 기본적으로 리스트와 동일하게 인덱싱, 슬라이싱이 가능합니다.
tu1 = (1, 2, 3)
print(tu1[1]) #인덱싱
print(tu1[0:2]) #슬라이싱
#tuple = tu1[0:2] 오류 발생
이렇게 인덱싱과 슬라이싱을 사용해 튜플 내부의 값을 골라서 꺼내올 수 있습니다.
하지만 당연하게도, 슬라이싱을 사용해 튜플을 다시 바꾸려고 하면 동일하게 오류가 발생합니다.
또한 더하기, 곱셈이 가능합니다.
tu1 = (1, 2, 3)
print(tu1 + tu1)
print(tu1 * 3)
위와 같이 튜플과 튜플을 덧셈으로 연결할 수도 있고, 곱셈으로 여러번 반복할 수도 있습니다.
당연하게도 튜플 자체의 변경은 불가능합니다.
이번 글은 이 정도로 마치도록 하겠습니다.
감사합니다.
'프로그래밍 언어 > 파이썬' 카테고리의 다른 글
파이썬 14. 딕셔너리 관련 함수 (0) | 2020.10.05 |
---|---|
파이썬 13. 딕셔너리 (0) | 2020.09.28 |
파이썬 11. 리스트 관련 함수 (0) | 2020.09.22 |
파이썬 10. 리스트 (0) | 2020.09.21 |
파이썬 9. 문자열 함수 (0) | 2020.09.18 |