Python

파이썬에서 튜플 사용하는 방법과 리스트와의 차이

총알 2024. 6. 10. 21:00
728x90

파이썬에서는 리스트와 비슷한 튜플이라는 게 있다.

리스트는 [ ]로 둘러싸지만 튜플은 ( )로 둘러싼다.

 

그럼 리스트와 튜플의 차이점은 뭘까?

바로 수정가능, 삭제가능 여부이다.

C언어에서 const를 사용해서 배열을 선언하는 것과 비슷하다고 보면 될 것 같다.

C언어에서는 바꾸면 안 되는 데이터의 경우 const로 선언해서 바꾸지 못하도록 한다.

파이썬에서도 마찬가지로 바꾸면 안 되는 데이터의 경우 튜플을 사용해서 바꿀 수 없도록 할 수 있다.

 

그럼 튜플이 무엇인지 설명을 다했으니 사용 방법을 알아보도록 하자.

튜플의 선언방법은 매우 간단하다. 아래처럼 그냥 ( )로 묶어주면 된다.

Tuple1 = ('Python', 'C language', 'Java')

print("Tuple : ", Tuple1)
print(Tuple1)
print(Tuple1[0])

################출력 결과################
Tuple :  ('Python', 'C language', 'Java')
('Python', 'C language', 'Java')
Python

print로 튜플의 출력방법 위와 같다.

다만 리스트와 다르게 %s로 전체 튜플 출력은 안 되는 것 같다.

 

Tuple1 = ('Python', 'C language', 'Java')

print("Tuple : %s" %Tuple1)

################디버깅 결과################
Traceback (most recent call last):
  File "d:\0. Work\Type\type.py", line 3, in <module>
    print("Tuple : %s" %Tuple1)
          ~~~~~~~~~~~~~^~~~~~~
TypeError: not all arguments converted during string formatting

위와 같이 에러가 발생한다.

(%s로 전체 튜플을 출력하는 방법을 아는 사람이 있다면 공유 부탁드립니다...ㅎㅎ)

 

Tuple1 = ('Python', 'C language', 'Java')
Tuple1[1] = 'C #'

################디버깅 결과################
Traceback (most recent call last):
  File "d:\0. Work\Type\type.py", line 2, in <module>
    Tuple1[1] = 'C #'
    ~~~~~~^^^
TypeError: 'tuple' object does not support item assignment

그리고 튜플을 바꾸려고 시도할 경우 위와 같이 에러가 발생한다.

 

튜플이 무엇인지, 리스트와의 차이점이 무엇인지 알았으니 튜플로 사용할 수 있는 함수에는 뭐가 있는지도 알아보자!


알아보려고 했으나 알아볼 수 있는 함수가 없다!!!

리스트에서 사용했던 reverse, index, append 등의 함수 모두 사용 불가능하다.

왜냐하면 앞서 설명했던 것처럼 튜플은 수정, 삭제 모두 불가능하기 때문이다.

다만, 튜플에서는 단순 연산이나 길이 구하기, 슬라이싱 정도는 가능하다

아래 예제들을 참고하자

 

튜플 더하기 예제
Tuple1 = ('Python', 'C language', 'Java')
Tuple2 = ('baseball','soccer')
Tuple_Sum = Tuple1 + Tuple2

print(Tuple_Sum)

################출력 결과################
('Python', 'C language', 'Java', 'baseball', 'soccer')

 

튜플 곱하기 예제
Tuple1 = ('Python', 'C language', 'Java')
Tuple_Multi = Tuple1 * 2
print(Tuple_Multi)

################출력 결과################
('Python', 'C language', 'Java', 'Python', 'C language', 'Java')

 

튜플 슬라이싱
Tuple1 = ('Python', 'C language', 'Java')
print(Tuple1[0:2])

################출력 결과################
('Python', 'C language')

 

튜플 길이 구하기
Tuple1 = ('Python', 'C language', 'Java')
print("tuple1의 길이: %d" %len(Tuple1))

################출력 결과################
tuple1의 길이: 3

 

-튜플 정리 끝-

728x90