코딩입문/백엔드

코딩입문기-파이썬3버전-4 튜플자료형1

부산강주현 2022. 5. 3. 08:49

파이썬에는 여러가지 형태의 자료형이 있다. 지금 대충 생각 나는 것은 리스트 자료형, 딕셔너리 자료형, 튜플자료형이다.

지지난번 포스팅에서 언급했지만, 리스트자료형과 튜플자료형의 차이는 생성 후 추가적인 변경의 가능 유무이다.

리스트 자료형은 생성 후 변경이 가능하고, 튜플자료형은 생성 후 변경이 불가능하다.

그리고 리스트는 대괄호를 이용해 표현하고, 튜플은 소괄호를 이용해 표현한다.

[1,2,3,4,5]=list

(1,2,3,4,5)=tuple 

이런 형식이다.

또한 튜플자료형은 리스트자료형보다 메모리를 적게 차지해서, 속도가 빠르다는 장점이있다.

튜플의 형식의 여러 유형에 대해 작성해본다.

여러가지 튜플 자료형

tuple1:빈튜플 자료

tuple2:한 개의 숫자형 데이터로 이뤄진 튜플자료

tuple3:여러개의 숫자형 데이터로 이뤄진 튜플자료

tuple4:괄호를 굳이 사용하지 않아도 튜플자료로 인식된다.

tuple5:문자형 데이터로 이뤄진 튜플자료 작은, 또는 큰따옴표 기호를 사용한다.

tuple7:튜플 속의 튜플자료[리스트자료형에도 동일한 형식이 있다.]

 

튜플자료형을 만들 시 주의사항이 있는데, 한개의 원소를 가질때 꼭 ',' 콤마 기호를 써줘야한다는 점이다.

따라서 위의 사진의 tuple2는 잘못되었다고 볼 수 있다.

함정카드 발동 짤을 일부러 가져왔지만, 내가 실수 한 것이 맞다.

만약에 ',' 콤마 기호를 안붙인다면, 자료가 출력 될 시에 튜플형으로 출력되는것이 아닌, 해당 데이터타입으로 type이 출력된다.

(1)인 tuple2그룹의 타입을 출력했다. 숫자형 자료형인 'int'가 출력된 것을 확인할 수 있다.

반대로, 정상적인 튜플자료형은 class 'tuple'로 출력될 것이다. 한번 확인해보자.

(1,2,3) 으로 제대로 구분되어진 tuple3의 타입을 출력했다. 튜플형 자료형이라고 확실히 명시해준다.

 

튜플형 자료형도 리스트형 자료형과 마찬가지로, 인덱싱과 슬라이싱, 그 외 길이 구하기 등 작업을 수행 할 수 있다.

 

먼저 튜플의 인덱싱을 알아보자면, 

 

작성자의 기본 신상정보를 tupleindex라는 그룹으로 나타냈다.

위와같이 내 기본정보를 튜플형으로 작성한 다음, 리스트형과 똑같이 0부터 시작해서 나타낼 수 있다.

내 생일인 '12월28일'을 출력하고 싶다면, print(tupleindex[2])라고 작성하면 된다.

내 생년인 '1994년' 을 출력하고 싶다면, print(tupleindex[4])라고 작성하면 된다.

생년인 1994년을 출력해보았다. f포멧으로 출력 할 시, 앞에 내가 쓰고싶은 문구를 포함해서 출력할 수 있다.

 

슬라이싱을 하는 방법또한 리스트자료형과 똑같다.

'0부터 시작하는 첫자리에서, X번째 자리의 요소 전까지 출력한다.' 라는 전제를 갖고 대괄호 안에 작성할 수 있다.

'생일' 과 '12월28일' 을 출력하려면, print(tupleindex[1:3]) 라고 코드를 치면 되며, '강주현', '생일', '12월 28일' 을 출력한다면,  print(tupleindex[:3]) 숫자 0을 입력하는 첫 번째 자리를 생략하고, 숫자 3에 해당하는 4번째 자리 전까지 출력한다. 라고 코드를 작성하면 된다.

 

내 생일은 12월 28일이니, 이 글을 보는 친구들이 있으면 기억해줬음 좋겠다.

아직까지 12월 30일이라고 외치는 친구가 있기 때문이다.

 

그리고 튜플 값을 더하고 곱하고 셈 할 수 있다.

덧셈은 튜플과 튜플을 서로 원소를 합쳐서 출력해주는 기능을 하고, 곱셈은 반복출력을 할 수 있게 된다.

 

 

튜플자료의 덧셈과 곱셈을 나타냈다. 덧셈에서 출력은 숫자형과 문자형의 원소를 그대로 포함해서 나온것이다.

곱셈에서의 출력은 tuple2의 값은 3이고, tuple4의 값은 1,2,3 이므로 1,2,3의 원소가 3번 출력된 것을 확인 할 수 있다.

 

만약 곱셈에서 tuple2의 값이 3말고 다른 요소가 있으면 어떨까? 싶어 바로 실행에 옮겼지만 출력 오류가 나는것을 확인할 수 있었다. 또한 tuple2의 값이 (3,)가 아닌 (3)이어서 계산이 되었지만 (3,)로 입력하는 순간 출력 오류가 난다.

처참한 결과. 학원에서는 이 오류문제때문에 선생님을 자주 소환한다.

 

마지막으로, 튜플자료의 개수 또한 구할 수 있다.

len함수를 이용하는 방법인데, len(내가원하는 튜플)을 넣으면 개수가 출력된다.

수백명분의 이름이나 정보를 입력하고, 총원을 계산할때 유용할 것 같다.

 

 

입력한 튜플자료형의 갯수를 출력한 모습이다.

 

 

생각보다 튜플자료형의 부가적인 기능이 많아서 리스트와 마찬가지로 1편2편으로 나누었다.

다음 포스팅은 튜플자료형의 값 추가, 삭제, 정렬 등에 대해서 작성할 예정이다.