[Python] 컬렉션 타입-튜플

개린이·2023년 9월 7일
1

Python

목록 보기
8/20
post-thumbnail

튜플

여러 가지 데이터 타입의 값을 저장할 수 있는 변경 불가능(immutable)한 순서가 있는 컬렉션

생성

튜플은 괄호()를 사용하고 항목들은 쉼표,로 구분한다.

tu1 = (1,)
print(tu1)

#tu1[0] = 100 # TypeError: 'tuple' object does not support item assignment
  • 값을 한개만 넣을 때 꼭 뒤에 쉼표(,)를 써줘야한다
  • 변경이 불가능한 컬렉션으로 tu1[0] 으로 있는 값을 변경하려할 때 TypeError가 발생한다.

🖥️예제

tu2 = (1,3,5,7)
print(tu2)

tu4 = ('apple','banana',('🍓','🍑'))
print(tu4)
print(tu4[0])
print(tu4[2][0])
print(type(tu4))
print(type(tu4[2]))
print(type(tu4[2][0]))

튜플 접근 방법은 리스트와 동일하게 tu4[0] 대괄호로 접근할 수 있다. 만약 튜플 안에 튜플이 있을 경우 tu[2][0]으로 접근한다.

tu5 = ('apple','banana',['🍓','🍑'])
print(tu5)
print(tu5[2][0])
print(type(tu5))
print(type(tu5[2]))
print(type(tu5[2][0]))

# tu5[0] = 'orange' 튜플이기때문에 변경 불가
tu5[2][0] = '🍎' # list 타입이므로 변경 가능
print(tu5)

튜플에는 튜플 뿐만 아니라 리스트도 넣을 수 있다.

슬라이싱

튜플의 일부분만을 추출할 수 있다.

🖥️예제

tu1 = (1,2,'apple','banana')
print(tu1[1:]) # 1째 인덱스부터 전부 출력
print(tu1[1:3]) # 1~3번째 인덱스까지 출력

연산

튜플 간의 + 연산으로 리스트를 결합할 수 있고 * 연산으로 리스트를 반복할 수 있다.

🖥️예제

tu1 = (10, 20, 30)
tu2 = (40, 50, 60)
print(tu1 + tu2)
print(tu2 + tu1)

tu1 = tu1 + (40, 50) #요소를 변경할 수 없는거지 주소값을 변경할수는 있다
print(tu1)

print(tu1 * 3)

언패킹

튜플의 항목들은 변수들에 할당될 수 있다(리스트도 가능)

🖥️예제

apple, banana = ('김사과', '반하나')
print(apple)
print(banana)

멤버십 테스트

in 연산자를 사용하여 튜플에 특정 값이 있는지 확인할 수 있다.(리스트도 가능)

🖥️예제

2 in (2, 4, 6, 8, 10)

bool 타입으로 출력된다.

튜플의 정렬

튜플은 sort() 메서드를 제공하지 않아 sorted() 함수를 사용해야한다.

🖥️예제

tu1 = (1, 3, 2, 0)
tu1 = sorted(tu1) # sorted의 반환형은 리스트
print(tu1)

sorted() 함수는 반환되지 않아 변수에 넣어서 사용해야 한다.

변환

튜플을 리스트로, 리스트를 튜플로 변환할 수 있습니다.

🖥️예제

tu1 = (1, 2, 3, 4)
print(type(tu1))
li1 = list(tu1)
print(type(li1))
tu2 = tuple(li1)
print(type(tu2))

3개의 댓글

comment-user-thumbnail
2023년 9월 8일

정리 잘하네요

1개의 답글

관련 채용 정보