[파이썬] 튜플(tuple)

컴공생의 코딩 일기·2021년 7월 27일
0

파이썬

목록 보기
5/17
post-thumbnail

튜플(tuple)이란?

튜플(tuple)이란 리스트(list)처럼 여러 개의 데이터를 저장할 때 사용합니다. 튜플(tuple)은 값이 한번 정해지면 변경할 수 없는 특징이 있습니다.

튜플(tuple) 사용 방법

튜플명 = (,,, ....)  # 튜플의 기본 사용은 소괄호()를 이용해 데이터 값을 넣는 방법입니다. 

혹은(or)

튜플명 =,,,...  # 여기서 주의해야 할 점은 소괄호()가 없어도 튜플 사용이 가능하지만 반드시 콤마(,) 가 있어야 합니다.

튜플(tuple) 사용 시 주의사항

  1. 하나의 요소를 사용할 때는 마지막에 콤마(,)를 사용해야 한다.
  2. 소괄호를 사용하지 않아도 튜플(tuple) 사용이 가능하지만 반드시 콤마(,)를 사용해야 한다.
  3. 한번 생성된 값은 변경할 수 없다.

예시)


me = ('홍길동',)  # 튜플(tuple)에 원소가 하나일 경우
print(me)  # 출력 값: ('홍길동',)


# 소괄호()를 사용할 때와 사용하지 않았을 때 출력 결과

me = ('홍길동', 20, 175.5)  # 소괄호를 사용했을 때

me1 = '홍길동', 20, 175.5  # 소괄호를 사용하지 않았을 때

print(me)  # 출력 결과: ('홍길동', 20, 175.5)
print(me1)  # 출력 결과: ('홍길동', 20, 175.5)
# 같은 결과 값이 나오는 걸 확인할 수 있습니다.

튜플(tuple)의 성질

튜블은 immutable(변할 수 없는) 성질을 가집니다.
(반대로 mutable(변할 수 있는)입니다!)

mutable을 학습하지 않으셨다면 https://velog.io/@sunnamgung8/파이썬-list리스트 제 블로그에 list(리스트)를 참고해 주세요!


data_tuple1 = 1, 2, 3  # data_tuple1에 1, 2, 3, 을 저장

data_tuple2 = data_tuple1  # data_tuple1에 값을 data_tuple2에 복사

print(data_tuple1)  # 출력 값: (1, 2, 3)
print(data_tuple2)  # 출력 값: (1, 2, 3)

print(type(data_tuple1))  # 출력 값: <class 'tuple'>
print(type(data_tuple2))  # 출력 값: <class 'tuple'>

각각 data_tuple1과 data_tuple2에 출력 값을 확인해 보면 같은 결과 값과 같은 데이터 타입인 것을 알 수 있습니다.

그럼 이제 tuple이 immutable(변할 수 없는)인지 알아보겠습니다!


data_tuple1 = 1, 2, 3  # data_tuple1에 1, 2, 3, 을 저장

data_tuple2 = data_tuple1  # data_tuple1에 값을 data_tuple2에 복사

data_tuple2 += 4, 5  # tuple은 append를 사용하지 않고 +를 사용해서 누적해서 연결하는 방식입니다.

print(data_tuple1)  # 출력 값: (1, 2, 3)
print(data_tuple2)  # 출력 값: (1, 2, 3, 4, 5)

위에 코드를 확인해 결과를 확인해 보면 data_tuple1과 data_tuple2가 다른 값을 가진다는 걸 알 수 있습니다.

위에 그림에서 보면 알 수 있듯이 data_tuple1과 data_tuple2는 서로 다른 주소 값을 갖습니다. 즉 data_tuple1과 data_tuple2는 서로 공유하지 않습니다. 그렇기 때문에 data_tuple2에 값을 추가해도 data_tuple1에 값은 바뀌지 않습니다.

data_tuple1 = 1, 2, 3  # data_tuple1에 1, 2, 3, 을 저장

data_tuple1[0] = 6  # 0번째 자리에 6으로 값을 수정

print(data_tuple1)  # 오류 발생!!!

data_tuple1에 0번째 자리에 값을 수정하면 오류가 발생합니다.
왜냐하면 tuple은 immutable(변할 수 없는) 성질을 갖기 때문에 한번 정해진 값을 수정할 수 없습니다. 그렇기 때문에 tuple은 값을 추가는 돼도 다른 tuple 간에 공유와 값을 수정할 수 없습니다.

tuple은 한번 정해진 데이터를 사용하는 목적으로 많이 사용합니다.

이상으로 튜플(tuple)에 대해 알아봤습니다. 잘못된 부분과 부족한 부분이 있으면 피드백 감사하겠습니다!!!

profile
더 좋은 개발자가 되기위한 과정

0개의 댓글