[Python]튜플(tuple)
파이썬의 기본 자료구조인 튜플에 대해서 알아보자.
튜플은 리스트와 동일한 성격을 가지고 있으나, 수정/삭제가 불가하다.(불변, immutable)
# tuple(튜플 : 순서존재, 중복가능, 수정불가, 삭제불가, 불변 ) # 선언 a = () b = (1,) c = (1) # b와는 달리 int 형으로 선언된다. 튜플로 선언하기 위해선 콤마(,)가 필요 print(type(a), type(b), type(c)) d = (100, 1000, 'abc', "123", (1, 2, 3)) # 인덱싱 print('d = ', d[1]) print('d = ', d[0] + d[1]) print('d = ', d[-1]) print('d = ', d[-1][1]) print('d = ', list(d[-1])) # 튜플이 리스트로 형변환됨 print() # 수정불가 확인 # d[0] = 1 <- 에러 발생 print("d = ", d[0:3]) print("d = ", d[3:]) print("d = ", d[4][0:2]) print() # 튜플 연산 print('b + d', b + d) print('b * 3', b * 3) print() # 튜플 함수 a = (5, 2, 3, 2, 1) print("a = ", a) print("a = ", a.index(3)) # 지정한 원소의 인덱스 번호 print("a = ", a.count(1)) # 지정한 원소의 개수 # 패킹 & 언패킹(packing, unpacking) # packing t = ('foo', 'bar', 'baz') s = 'foo', 'bar', 'baz' # 괄호로 묶어주지 않아도 튜플로 선언가능, 괄호로 묶어주는 위의 방법을 더 많이 사용 r = 'foo', # unpacking (x1, x2, x3) = t # 괄호로 묶어주는 방식을 관례로 더 많이 사용함 y1, y2, y3 = t print(x1, x2, x3, y1, y2, y3) print(type(x1), type(x2), type(x3), type(y1), type(y2), type(y3)) # 각 요소의 자료형이 출력됨 # packing & unpacking t2 = 1, 2, 3 # packing t3 = 4, # packing x1, x2, x3 = t2 # unpacking x4, x5, x6 = 5, 6, 7 # unpacking print(x1, x2, x3, x4, x5, x6)
결과
<class 'tuple'> <class 'tuple'> <class 'int'> d = 1000 d = 1100 d = (1, 2, 3) d = 2 d = [1, 2, 3] d = (100, 1000, 'abc') d = ('123', (1, 2, 3)) d = (1, 2) b + d (1, 100, 1000, 'abc', '123', (1, 2, 3)) b * 3 (1, 1, 1) a = (5, 2, 3, 2, 1) a = 2 a = 1 foo bar baz foo bar baz <class 'str'> <class 'str'> <class 'str'> <class 'str'> <class 'str'> <class 'str'> 1 2 3 5 6 7
최신 댓글