본문 바로가기

Data Science/Python

[python] 03.자료구조 | Tuple

2. Tuple

  • 리스트처럼 순서대로 원소를 관리, 단 원소를 변경할 수 없음
  • 소괄호로 관리되고, 괄호는 생략가능 (value, value,,,,)
    예) 튜플 대입 a,b,c = 10,20,30 = (10,20,30)
  • (50)은 그냥 정수 - 파이썬에서는 괄호를 '연산자 우선수위'를 알려준다고 생각, 그냥 정수로 인식
  • (50,) or 50, - 뒤에 쉼표를 붙여줘야 tuple로 인식

Indexing과 Slicing을 이용한 원소(element) 조회

  • 조회 과정 자체는 리스트와 동일하지만, 튜플은 조회만 가능하고 원소를 변경할 수 없음
#조회
index
t2 = (10,20,30,40,50,60)
#양수/음수 index
t2[0] -> 10
t2[5],t2[-1] -> 60,60

#범위 조회
t2[1:5] -> 20,30,40,50
t2[1:-2] -> 20,30,40


#새로운 튜플
t1 = (3,4,5)
t1 = (1,2)
t1 > (1,2) #튜플의 값이 바뀐 것이 아니라, 새로운 튜플로 바뀐 것

tuple 생성

  • (value, value, value, ...)
  • 원소가 하나인 Tuple 표현식 : (value,) 또는 value,
    • 값 뒤에 , 를 붙여준다. ,를 붙이지 않으면 ( )가 연산자 우선순위 괄호가 된다.
# 생성
t1 = (10,20,30,40,50) # ()로 감싼다.
print(type(t1))
t2 = 10,20,30,40,50,60 # ()생략 가능
print(type(t2))
t3 = (10,5.2,True,"abc") # 다른 타입들을 모을 수 있다.
t4 = 10,5.2,True,"abc"
print(type(t3), type(t4))


#값 뒤에, 붙이기
t5 = (30) > int type
t6 = (30,) > tuple type

원소 조회

  • 리스트와 동일(tuple[index]) 하지만 튜플은 조회만 가능, 변경 불가
  • 원소 조회 메소드
      index(값, 시작 index) : 해당 값의 index가 어디인지(0부터 시작)
      count(값) : Tuple안에서 몇 번 나왔는지 
예)
t = (1,2,3,4,1,2,1,2,1,1,1)
t.count(1) 
 -> 6
 
t.index(2,4) #2의 index를 조회, index 4부터 찾아라
 -> 5
 
예)
print(t2[0])
print(t2[5],t2[-1])

예)
t1 = (1,2)
t1 #튜플의 값이 바뀐 것이 아니라, 새로운 튜플로 바뀐 것

예) 범위 조회
t2[1:5]