산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

Python 튜플 마스터하기: 생성, 접근, 고급 연산

Python 튜플

Python 튜플의 강력함을 알아보세요. 튜플은 한 번 생성하면 변경할 수 없는 시퀀스로, 속도, 안전성, 이질적 데이터 처리의 다재다능함을 제공합니다. 기본 문법부터 고급 연산까지, 리스트 대신 튜플을 선택해야 할 때를 이해하게 됩니다.

동영상: Python 리스트와 튜플

튜플은 리스트처럼 동작하지만 생성 후에는 불변(immutable)입니다. 리스트와 달리 요소를 변경할 수 없어 고정된 데이터 세트에 이상적입니다.


튜플 생성하기

튜플은 쉼표로 구분된 값을 괄호 () 안에 넣어 정의합니다. 괄호는 선택 사항이지만 가독성을 위해 권장됩니다.

튜플은 임의의 개수 항목을 담을 수 있으며 정수, 실수, 문자열, 리스트, 다른 튜플 등 데이터 타입을 혼합할 수 있습니다.

# 다양한 튜플 유형
# 빈 튜플
my_tuple = ()
print(my_tuple)
# 정수 튜플
my_tuple = (1, 2, 3)
print(my_tuple)
# 혼합 데이터 타입
my_tuple = (1, "Hello", 3.4)
print(my_tuple)
# 중첩 튜플
my_tuple = ("mouse", [8, 4, 6], (1, 2, 3))
print(my_tuple)

출력

() (1, 2, 3) (1, 'Hello', 3.4) ('mouse', [8, 4, 6], (1, 2, 3))

괄호 없이도 튜플을 만들 수 있는데, 이를 튜플 패킹(tuple packing)이라고 합니다.

my_tuple = 3, 4.6, "dog"
print(my_tuple)
# 튜플 언패킹
a, b, c = my_tuple
print(a)
print(b)
print(c)

출력

(3, 4.6, 'dog') 3 4.6 dog

요소가 하나뿐인 튜플은 일반 값과 구별하기 위해 끝에 쉼표가 필요합니다.

my_tuple = ("hello")
print(type(my_tuple))  # <class 'str'>
# 단일 요소 튜플
my_tuple = ("hello",)
print(type(my_tuple))  # <class 'tuple'>
# 괄호 생략 가능
my_tuple = "hello",
print(type(my_tuple))  # <class 'tuple'>

출력

<class 'str'> <class 'tuple'> <class 'tuple'>

튜플 요소 접근하기

튜플은 여러 방식으로 요소에 접근합니다:

1. 인덱싱

인덱스 연산자 []를 0-기반 인덱스와 함께 사용. 범위 초과 시 IndexError, 비정수 인덱스 시 TypeError.

# 인덱싱 예제
my_tuple = ('p','e','r','m','i','t')
print(my_tuple[0])  # 'p'
print(my_tuple[5])  # 't'
# 중첩 인덱싱
n_tuple = ("mouse", [8, 4, 6], (1, 2, 3))
print(n_tuple[0][3])  # 's'
print(n_tuple[1][1])  # 4

출력

p t s 4

2. 음수 인덱싱

음수 인덱스는 끝에서부터 셉니다: -1은 마지막 요소.

# 음수 인덱싱
my_tuple = ('p', 'e', 'r', 'm', 'i', 't')
print(my_tuple[-1])  # 't'
print(my_tuple[-6])  # 'p'

출력

t p

3. 슬라이싱

start:stop 구문으로 부분 튜플 추출.

# 슬라이싱 예제
my_tuple = ('p','r','o','g','r','a','m','i','z')
print(my_tuple[1:4])   # ('r', 'o', 'g')
print(my_tuple[:-7])   # ('p', 'r')
print(my_tuple[7:])    # ('i', 'z')
print(my_tuple[:])     # 전체 튜플

출력

('r', 'o', 'g') ('p', 'r') ('i', 'z') ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
Python 튜플 마스터하기: 생성, 접근, 고급 연산

튜플 수정하기

튜플은 불변입니다. 요소에 직접 대입하면 TypeError:

# 수정 시도
my_tuple = (4, 2, 3, [6, 5])
# my_tuple[1] = 9  # TypeError

하지만 요소가 가변 객체(예: 리스트)라면 내부 상태는 변경 가능:

my_tuple[3][0] = 9
print(my_tuple)  # (4, 2, 3, [9, 5])

튜플 자체를 새 값으로 재할당은 가능:

my_tuple = ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
print(my_tuple)

+로 연결, *로 반복 가능하며 둘 다 새 튜플을 반환합니다.

print((1, 2, 3) + (4, 5, 6))  # (1, 2, 3, 4, 5, 6)
print(("Repeat",) * 3)        # ('Repeat', 'Repeat', 'Repeat')

출력

(1, 2, 3, 4, 5, 6) ('Repeat', 'Repeat', 'Repeat')

튜플 삭제하기

개별 항목은 제거할 수 없습니다. del로 튜플 전체만 삭제 가능:

my_tuple = ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
# del my_tuple[3]  # TypeError
del my_tuple
# print(my_tuple)  # NameError

출력

Traceback (most recent call last): File "<string>", line 12, in <module> NameError: name 'my_tuple' is not defined

튜플 메서드

튜플은 count()와 index() 두 개의 내장 메서드만 제공합니다.

my_tuple = ('a', 'p', 'p', 'l', 'e')
print(my_tuple.count('p'))  # 2
print(my_tuple.index('l'))  # 3

출력

2 3

기타 튜플 연산

1. 멤버십 테스트

in 키워드로 존재 여부 확인.

my_tuple = ('a', 'p', 'p', 'l', 'e')
print('a' in my_tuple)
print('b' in my_tuple)
print('g' not in my_tuple)

출력

True False True

2. 순회

for 루프로 튜플 순회:

for name in ('John', 'Kate'):
    print("Hello", name)

출력

Hello John Hello Kate

3. 리스트 대비 장점


python

  1. 파이썬 데이터 타입 마스터하기: 실전 가이드
  2. 파이썬 연산자 마스터하기: 종합 가이드
  3. 파이썬 pass 문 마스터하기: 실전 가이드
  4. 파이썬 함수 인자 마스터하기: 위치, 키워드, 기본 매개변수
  5. Python 딕셔너리 마스터하기: 생성, 조작, 고급 기법
  6. Python 이터레이터: 작동 원리와 직접 만들기
  7. Python 클로저 이해하기: 중첩 함수가 변수 캡처하는 방법
  8. Python datetime 마스터하기: 날짜, 시간, 타임존 실전 가이드
  9. 파이썬(Python) 개요: 고수준, 가독성, 인터랙티브, 객체지향
  10. 파이썬 숫자(Numbers): 불변 숫자 데이터 타입 이해하기