[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

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다