본문 바로가기

파이썬 프로그래밍/파이썬 기초

[Python] 예제로 보는 파이썬 Tuple 기초 개념

Tuple의 특징

- list와 거의 비슷하지만 변경 불가능(Immutable)한 특성을 가지고 있음 (변경 가능한 특성: mutable)
- 슬라이스와 인덱싱등은 지원을 하지만 append, pop, remove등은 지원하지 않음.
한마디로 말해 값을 가져올수 있지만 추가, 수정, 삭제가 불가능


문법

( ), tuple( ), tuple(iterable)

1
number = (1,2,3,4,5)
cs
이런식으로 생성 가능

예제를 보면 ( ) 를 하지 않아도 출력은 똑같은 tuple로 출력하는것을 보아 ( )를 사용하여 생성하는것도 맞지만 때에따라서 생략도 가능하다고 볼 수 있겠습니다.


Tuple은 정말 Immutable일까?(변경불가능한 특성)

list에서 했던것처럼 값을 추가하자 에러가 납니다.

즉 tuple은 값을 추가할 수 없는것을 증명하게 되었습니다.



1. Tuple의 인덱싱


2. Tuple의 슬라이싱


3. Tuple끼리 더하기


4. Tuple 곱하기

tu1을 3번씩 출력합니다.






Packing / Unpacking

(여기)서 한번 내용을 다뤘지만 Tuple을 이용하여 사용하는 것이기 때문에 다시한번 정리하고 넘어가겠습니다.

Pcaking: 하나의 변수에 여러개의 값을 집어넣는것

Unpacking: 패킹된변수에서 여러개의 값을 가져오는것

가장 기본적인 예입니다. numbers변수에 1~10까지 대입(Packing)을 하고,

numbers의 값을 v1~v10까지 값을 가져와 저장(Unpacking)했다 말할 수 있습니다.

v1, v10이 알맞게 출력되네요.



만약 10개의 값을 Packing했지만 7개만 Unpacking 한다면 아래와 같은 오류가 납니다.

반드시 Unpacking은 Packing과 갯수를 맞춰야 합니다.



만약에 Packing이 100개가 있다면 Unpacking할때 100개를 다써줘야할까?

정답은 아닙니다.

슬라이싱을 통해 원하는 부분만 Unpacking할 수 있습니다.



이런식으로 Packing된 변수를 Unpacking하고 뒤에 추가로 값을 저장할 수도 있습니다.




Swap

이것이 당연한데 왜 대단한 것인가요?

 Java나 C의 경우 x, y를 바꾸려면 temp를 사용해야 합니다.

 temp = x

 y = x

 y = temp

이렇게 사용해야 했지만 파이썬은 간단하게 x, y = y, x 한줄로 바꿀수 있습니다.



Set(집합형)

- 중복을 허용하지 않는 데이터의 집합
- list / tuple에서 중복을 제거하려 할 때 set을 사용하면 유용하게 쓸 수 있습니다.
- list / tuple 과 다르게 추가된 순서를 유지하지 않는 특징이 있습니다.



합집합, 교집합, 차집합, 여집합의 연산





본 게시글은 nomade.kr의 게시글을 참고하여 쓴 글입니다.