[Python] 튜플
튜플이란?
- () 안에 ,를 이용하여 데이터를 모아서 관리함.
- 괄호 없이 ,로 데이터들을 분리해도 튜플로 간주함.
- 튜플은 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 # 두 수의 값이 바뀜