프로그래밍 언어/파이썬

파이썬 12. 튜플

닉네임못짓는사람 2020. 9. 23. 08:58
반응형

이번 글에서는 튜플에 대해서 알아보도록 하겠습니다.

 

튜플


튜플은 기본적으로 몇 가지 부분을 제외하면 리스트와 비슷한 자료형입니다.

먼저, 리스트와 튜플은 모두 여러 개의 자료들을 한 군데에 모아서 저장할 수 있습니다.

그리고 리스트는 데이터를 대괄호([ ])로 묶지만 튜플은 그냥 괄호( )로 묶습니다.

가장 큰 차이점은, 리스트는 안에 들어있는 값들을 수정, 삭제 등 내부 값을 바꿀 수 있지만 튜플은 내부의 값을 바꿀 수가 없습니다.

 

코드를 통해 튜플의 값을 변경하려고 시도해봅시다.

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