본문 바로가기
Python_Wiki/Python_Syntax

(순서)자료형(data type) - 튜플

by yj-data 2025. 5. 27.

튜플 (tuples)

- update & delete 불가, 수정해서는 안 되는 값을 저장할 때 사용

  • create :()로 생성
    • 괄호있는튜플: (데이터, 데이터,...) 로 생성, 한개 값을 가질때는 마지막에 "," (쉼표)를 써줘야함
    • 괄호없는튜플: 괄호를 생략해도 튜플로 인식할 수 있음 (예, tuple1 = 1,2,3,4,5  => tuple1 = (1,2,3,4,5)로 나옴)
    • tuple1 = (4) 하면 int로 생성이 되고, tuple1=(4,) 해야 튜플이 무사히 생성됨
  • 인덱싱과 슬라이싱은 리스트와 완전히 동일함
  • 데이터 중복 가능(딕셔너리, 집합과 다르게)
  • 언패킹: 여러 값을 동시에 가져올 수 있음
    • person = ("Alice", 25, "New York")
      name, age, city = person  #원래 데이터가 3개이므로 꺼내려면 변수 개수도 동일하게 해서 한번에 꺼내야함. person에 값이 3개이므로, 꼭 3개 변수를 사용해 꺼내야 하고, 2개나 4개를 사용하면 에러가 남.

      print(name)
      print(age)  
      print(city) 
  • 함수
    • 연산자도 리스트와 동일 (+, *, len)
    • .count(x): x의 개수
    • .index(x): 첫 x의 위치
    • .sort() 사용불가(아이템 변경 불가이므로) => but sorted()는 가능함, 다만 튜플을 리스트로 변환해 정렬해서 출력함. 이를 다시 튜플화 하려면 tuple(sorted(튜플)) 하면 됨.
    • sum() min() max(): 튜플 요소들의 합, 최소값, 최대값을 구함
    • in 사용가능
    • .join 사용가능 
      • 예, ls = ('a','b','c','d','e')
        ' '.join(ls)  #a b c d e
    • max(튜플, key = lambda x:x[인덱스]) : 다중 튜플의 경우 정렬 기준을 정의하여 튜플 내 최댓값을 탐색함
    • min(튜플, key = lambda x:x[인덱스]) : 다중 튜플의 경우 정렬 기준을 정의하여 튜플 내 최솟값을 탐색함
      • 예, a = (('a', 1), ('b',7), ('c', 3), ('d', -5), ('e', -9))
        print(max(a, key = lambda x:x[0]))  #a에서 max인 요소를 가져올건데, max 판별 기준이 요소의 첫번째 값(문자)을 기준으로 max를 구해줘.  #출력값은 ('e', -9)
        print(max(a, key = lambda x:abs(x[1]))) #두번째 요소의 절대값을 기준으로 최대/최소 값 탐색
      • 리스트에는 sorted로 비슷하게 적용할 수 있음 
        b = list(a)
        print(sorted(b, key = lambda x:x[1], reverse=True))