Study/Python

[Python] 튜플

ChoiSenn 2021. 5. 4. 14:16

튜플이란?

 - () 안에 ,를 이용하여 데이터를 모아서 관리함.

 - 괄호 없이 ,로 데이터들을 분리해도 튜플로 간주함.

 - 튜플은 immutable한 객체임.

 - immutable하기 때문에 객체 수정과 관련된 메소드들은 없음.

 - 값을 수정할 수 없으므로 읽기만 가능함. 따라서 읽기 전용 자료를 저장할 때 사용.

 

immutable 객체

 - 튜플 객체는 만든 후에 내용을 수정할 수 없는 immutable 객체.

 - 수정하려고 하면 에러 발생.

 - del 연산자를 사용해서 튜플을 통째로 삭제하는 것은 가능.

 - 튜플 안에는 9가지 자료형을 모두 저장할 수 있음.

 - mutable 객체인 리스트, 집합, 사전도 저장 가능.

 - 튜플 안에 저장된 튜플, 문자열은 수정 불가능하지만 튜플 안에 저장된 리스트는 수정이 가능.

 

튜플 만들기

 - 일반

  >> T1 = (3, 2, 1, 5)

  >> T2 = 4, 7, 8

  >> T3 = 3, 6, 8,  #전부 튜플

 - 원소가 1개인 튜플

  >> T1 = (5)  # 괄호 안에 정수 하나만 있으면 튜플이 아니라 정수

  >> T2 = ('apple')  # 문자열

  >> T3 = ([1, 2, 3])  # 리스트

  >> T4 = ((1, 3, 5))  # 괄호 안에 튜플 하나가 있으면 역시 그냥 튜플

  >> T5 = (5,)  # 원소가 하나일때 마지막에 ,를 넣으면 튜플!!

 - 빈 튜플

  >> T = ()

  >> T = tuple()  # 그냥 빈 괄호, 튜플 함수 둘 다 빈 튜플 생성

 - 다른 자료형 튜플로 변환

  >> T = tuple(문자열or리스트or집합or사전)  # 집합은 순서 개념 X, 사전은 키만 저장, range(), reversed() 함수도 튜플 변환 가능

 

튜플 인덱싱, 슬라이싱 

 - 인덱싱, 슬라이싱은 기본적으로 리스트와 동일.

 

튜플에 +, *, in, not in, del 연산자 사용

 - 리스트와 같음.

 

튜플에 함수 적용

 - sorted() 함수를 사용하면 리스트로 결괏값이 나옴.

 - reversed() 함수를 사용하면 위치값이 나옴.  (둘 다 튜플로 변환 과정이 필요)

 

튜플 메소드

 - count(x) - 데이터 c의 개수를 반환

 - index(x) - 데이터 c의 인덱스를 반환. 없다면 ValueError

 

튜플 스왑

 - 두 변수의 값을 바꾸는 일.

 - 리스트를 이용해서도 스왑할 수 있음.

  >> a = 10; b = 20

  >> b, a = a, b  # 두 수의 값이 바뀜