코인시던스의 기록

[#10 파이썬 기초] 튜플(Tuple) 생성하는 법, 튜플 사용하는 이유? 본문

파이썬

[#10 파이썬 기초] 튜플(Tuple) 생성하는 법, 튜플 사용하는 이유?

코인시던스 2020. 10. 14. 20:02

안녕하세요. 오늘은 파이썬의 4가지 컬렉션 중 튜플(Tuple) 에 대해 알아보겠습니다. 

튜플은 쓰임새가 명확하고 한정적이기 때문에 쉽게 배울 수 있습니다.

 

   1. 튜플(Tuple)의 생성

- 리스트는 대괄호 [] 를 이용해서 생성했다면, 튜플은 일반 괄호 () 를 이용해서 생성합니다.

   2. 튜플(Tuple) 의 특징

- 튜플은 리스트와 다르게 한 번 생성되면 값을 바꿀 수 없습니다. (immtable)

- 아래의 예시와 같이 리스트에서는 0 번째 멤버를 100 으로 바꾸고 출력하면 리스트가 바뀐 것을 볼 수 있죠.

리스트(List) : mutable

- 하지만 튜플은 immutable 로 변경이 안되기 때문에 type error 가 뜹니다. item assignment 가 안된다고 나와있죠.

튜플(tuple) : immutable

   3. 튜플(Tuple) 사용 이유

그런데 튜플을 왜 사용할까요? 사실 튜플은 컬렉션으로써는 크게 의미가 없습니다. 크기가 적고 변하지 않는 값을 트랙킹 해야하는 것이 아니면 거의 쓰지 않습니다. 튜플은 주로 문법적으로 편의성을 줄 때 사용합니다.

- 튜플은 괄호를 생략할 수 있습니다.

Tuple 생성 : () 사용
() 없이 tuple 생성 가능

- 튜플을 가장 많이 쓰는 경우로, 아래와 같이 하나의 라인에 변수 4 개를 생성할 수 있습니다.

- 그리고 다른 언어의 경우 함수는 값을 하나만 반환 시킬 수 있지만 파이썬은 multiple return 이 가능합니다. 그 값이 실제로 multiple 이 아니라 단순히 tuple 을 반환시키는건데 나중에 함수를 배우면 자세히 설명드리겠습니다.

 

파이썬에서 유명한 튜플 문제가 있는데요! 한번 알아볼까요?

[연습문제] a 와 b 값을 교환하시오. a = 5, b = 4

 

프로그래밍을 처음 배우시는 분들은 아래와 같이 많이 풉니다. 실행하면 a 의 값만 바뀌어 있는데요. a = b 에서 b 를 a 에 대입하기 때문에 a 는 4 로 업데이트가 되고, b = a 에서 이미 4 로 바뀐 a 가 b 로 대입되기 때문에 두 값이 모두 4 로 나타납니다.

그러면 b 의 값을 a 로 업데이트 하기 전에 b 를 어디엔가 임시로 담아 놓으면 되겠죠? 이 임시 변수를 temp 이라고 해볼께요. temp = a 로 a 를 임시로 temp 에 업데이트 해놨기 때문에 a 가 날아가도 문제가 없겠죠. 따라서 아래와 같은 로직으로 a, b 값이 바뀐것을 볼 수 있습니다.

하지만 파이썬은 튜플 언패킹을 이용해서 위 문제를 한줄로 풀 수 있습니다.

튜플은 멀티플한 값을 반환시킬 때 사용하는데 나중에 다시 설명 드리겠습니다.

 

Comments