본문 바로가기

Python/Basic

[파이썬 기초] 파이썬 튜플 Tuple 기초 완전 정복

 

 

안녕하세요 오늘은 튜플에 대해서 설명하겠습니다. 

 

 

Tuple

리스트와 마찬가지로 임의적인 항목의 시퀸스다.

리스트와는 다르게 불변한다. 즉 튜플을 정의 한 후에 수정,삭제,추가 할 수 없다.

() 로 둘러 쌓여있다. ()로 둘러쌓여있는것은 튜플이다

* 꼭 마지막 까지 봐주세요

 

 

 

 

튜플생성하기 : ()

empty_tuple = () 

로 튜플을 생성한다 그리고 괄호안에 요소를 넣을수 있다.

위와 같은 경우는 빈 튜플을 생성한 것이다.

 

 

튜플을 정의 할 때 () 가 필요 없다

가장 마지막에 , ( 쉼표 ) 를 붙이면 Tuple을 정의한다는 의미이다

하지만 가독성을 높이기 위해 () 를 묶어서 생성하도 록 하자

 

 

 

튜플 언패킹 : Tuple unpacking 

튜플을 한번에 여러변수에 할당 하는것

 

num_tuple에 1,2,3 이라는 항목이 있다.

변수 a, b, c 에 1,2,3이라는 값들을 할당 하였다.

위의 사진을 보면 변수 a 에 1이 b에는 2가 c에는 3이 들어간걸 볼 수 있다.

 

 

한 문장에서의 값 교환

한 문장에서 값을 교환하기위해 임시변수를 사용하지 않고 튜플을 사용할 수가 있다

 

ID에 코딩하는 공대생을 넣으려 했다가 Password에 넣어버렸다. 

이럴때 임시변수에 값을 넣었다가 하기엔 너무 번거롭다

 

*지금의 예시는 우리가 기억 할 수있는 단어이다 하지만

막대한량의 자료, 한순간에 외우기 어려운 것들로 이루어진 변수, 많은 양의 각각의 변수들 이라면 더욱 힘들것이다.

 

 

이것이 튜플의 힘이돳~

차례대로 봐야한다.

ID 가 Password 에 대응한다

Password 는 ID 에 대응한다.

헷깔릴 수 있으니 아래의 사진을 확인해 보자.

 

중간에 철자를 잘못써서.. 틀렸다.. ㅎ..

ID , Password = ID , Password 를 하였을 때는 

ID 의 값은 변하지 않았고 Password의 값도 변하지 않았다

 

즉 위의 사진 처럼 대응 하고 있는 걸 알수있다.

 

 

다른객체를 튜플로 만들기 : tuple()

 

다른 객체인 리스트를 튜플로 바꾸어 보았다.

type() 함수를 써서 반환되는 타입을 알아보니 tuple 로 바뀐것을 알 수있다. 

하지만 원래의 hanList는 바뀌지 않는다. 잠시 바꿔준것 뿐이다. 

 

 

 

 

튜플의 활용

튜플을 여러방식으로 활용할 수 있다. 하지만 List 처럼 append, insert 등 함수를 사용할 수 없다.

왜냐하면 튜플을 불변하기 떄문이다. 

     *append 마지막항목에 추가, insert 인덱스를 활용한 추가 이 모두가 항목을 추가하는 거기때문에 사용할 수없다.

 

 

인덱싱

위와 같이 offset 을지정하여 인덱싱을 할 수도 있다. 

 

 

곱하기 

곱하기는 위와 같은 방식으로 할 수있다. 곱하기를 하였어도 원래의 hanTuple의 값은 변하지 않으니 걱정하지 않아도 된다.

변한다면..... ㅇㅅㅇ 이기능을 만들 필요가 없었을 지도 모른다(코딩하는 공대생주관)

 

boom 변수에 hanTuple를 곱한 항목들을 할당하였다.

boom을 치니 () 로 묶여있는 걸로 보아 Tuple 인걸 알수있다.

 

 

더하기 

hanTuple + num_tuple 을 하였더니 항목들이 합쳐져서 나온걸 알 수 있다.

 

슬라이싱 

위에서 만들었던 hanList 를 tuple() 를 이용하여 tuple 형태로 바꿔준후 

hanTuple에 값을 할당하였다.

 

마지막으로 튜플을 사용하는 이유에 대해서 설명하고 마치도록 하겠습니다.

 

 

 

튜플을 사용하는 이유 

  1. 튜플은 리스트보다 더 적은 공간을 사용 
  2. 실수로 튜플의 항목이 손상될일(삭제, 변경)이 없다.
  3. 튜플을 딕셔너리의 키로 사용 할 수 있다. (딕셔너리 시간에)
  4. 함수의 인자들은 튜플로 전달된다.
  5. 네임드 튜플은 객체의 단순한 대안이 될 수있다.(추후에 설명하겠습니다.)