튜플(tuple)이란 리스트(list)처럼 여러 개의 데이터를 저장할 때 사용합니다. 튜플(tuple)은 값이 한번 정해지면 변경할 수 없는 특징이 있습니다.
튜플명 = (값, 값, 값, ....) # 튜플의 기본 사용은 소괄호()를 이용해 데이터 값을 넣는 방법입니다.
혹은(or)
튜플명 = 값, 값, 값,... # 여기서 주의해야 할 점은 소괄호()가 없어도 튜플 사용이 가능하지만 반드시 콤마(,) 가 있어야 합니다.
예시)
me = ('홍길동',) # 튜플(tuple)에 원소가 하나일 경우
print(me) # 출력 값: ('홍길동',)
# 소괄호()를 사용할 때와 사용하지 않았을 때 출력 결과
me = ('홍길동', 20, 175.5) # 소괄호를 사용했을 때
me1 = '홍길동', 20, 175.5 # 소괄호를 사용하지 않았을 때
print(me) # 출력 결과: ('홍길동', 20, 175.5)
print(me1) # 출력 결과: ('홍길동', 20, 175.5)
# 같은 결과 값이 나오는 걸 확인할 수 있습니다.
튜블은 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)에 대해 알아봤습니다. 잘못된 부분과 부족한 부분이 있으면 피드백 감사하겠습니다!!!