Python : Tuple

m_ngyeongΒ·2024λ…„ 10μ›” 9일
0

Python

λͺ©λ‘ 보기
3/17
post-thumbnail

🐍 Python


Tuple

νŠœν”Œ(tuple)은 νŒŒμ΄μ¬μ—μ„œ μ—¬λŸ¬ 개의 값을 ν•˜λ‚˜μ˜ λ³€μˆ˜μ— μ €μž₯ν•  수 μžˆλŠ” μžλ£Œν˜•μ΄λ‹€. νŠœν”Œμ€ λ¦¬μŠ€νŠΈμ™€ λΉ„μŠ·ν•œ ꡬ쑰λ₯Ό κ°€μ§€μ§€λ§Œ, λ³€κ²½ν•  수 μ—†λŠ”(immutable) νŠΉμ§•μ„ κ°€μ§€κ³  μžˆλ‹€. 즉, ν•œ 번 μ •μ˜λœ νŠœν”Œμ˜ μš”μ†Œλ“€μ€ μˆ˜μ •, μΆ”κ°€, μ‚­μ œκ°€ λΆˆκ°€λŠ₯ν•˜λ‹€. λ”°λΌμ„œ κ³ μ •λœ 데이터λ₯Ό λ‹€λ£° λ•Œ νš¨μœ¨μ μ΄λ‹€.

  • ν˜•νƒœ: μ†Œκ΄„ν˜Έ(())
  • μˆœμ„œ(order)의 κ°œλ…μ΄ 쑴재: νŠœν”Œμ˜ 각 μš”μ†ŒλŠ” 인덱슀(index)λ₯Ό 톡해 접근이 κ°€λŠ₯ν•˜λ©°, μΈλ±μŠ€λŠ” 0λΆ€ν„° μ‹œμž‘
  • λ³€κ²½ λΆˆκ°€(immutable): μƒμ„±λœ μ΄ν›„μ—λŠ” 값을 λ³€κ²½ν•  수 μ—†μŒ(λ¦¬μŠ€νŠΈμ™€λŠ” λ‹€λ₯΄κ²Œ, μˆ˜μ •μ΄λ‚˜ μ‚­μ œκ°€ λΆˆκ°€λŠ₯)
  • λ‹€μ–‘ν•œ 데이터 νƒ€μž…μ„ κ°€μ§ˆ 수 있음: μ •μˆ˜, λ¬Έμžμ—΄, 리슀트 또 λ‹€λ₯Έ νŠœν”Œ λ“± μ—¬λŸ¬ μžλ£Œν˜•μ„ ν•¨κ»˜ μ €μž₯ν•  수 있음
  • λ©”λͺ¨λ¦¬ νš¨μœ¨μ„±: λ¦¬μŠ€νŠΈλ³΄λ‹€ λ©”λͺ¨λ¦¬λ₯Ό 적게 μ‚¬μš©ν•˜μ—¬ 변경이 ν•„μš” μ—†λŠ” λ°μ΄ν„°μ˜ 경우 νŠœν”Œμ΄ 더 νš¨μœ¨μ μž„

νŠœν”Œ 생성

νŠœν”Œμ€ μ†Œκ΄„ν˜Έ ()λ₯Ό μ‚¬μš©ν•˜μ—¬ μƒμ„±ν•˜κ³  값을 μ‰Όν‘œλ‘œ ꡬ뢄해 λ„£λŠ”λ‹€.

# νŠœν”Œ 생성
my_tuple = (1, 2, 3)

# 빈 νŠœν”Œ 생성
empty_tuple = ()

# ν•œ 개의 μš”μ†Œλ₯Ό κ°€μ§„ νŠœν”Œ
single_element_tuple = (5,)  # μ‰Όν‘œκ°€ ν•„μˆ˜
print(single_element_tuple)  # (5,)

νŠœν”Œμ— ν•œ 개의 μš”μ†Œλ§Œ μžˆμ„ 경우, μ‰Όν‘œ(,)λ₯Ό λ°˜λ“œμ‹œ λΆ™μ—¬μ•Ό ν•œλ‹€. κ·Έλ ‡μ§€ μ•ŠμœΌλ©΄ νŠœν”Œμ΄ μ•„λ‹Œ 단일 κ°’μœΌλ‘œ μΈμ‹λœλ‹€.

single_element = (5)
print(single_element)  # 5

νŠœν”Œμ˜ κΈ°λ³Έ μ—°μ‚°

인덱싱(Indexing)

νŠœν”Œμ˜ μš”μ†ŒλŠ” 리슀트처럼 인덱슀λ₯Ό 톡해 μ ‘κ·Όν•  수 μžˆλ‹€. μΈλ±μŠ€λŠ” 0λΆ€ν„° μ‹œμž‘ν•œλ‹€.

my_tuple = (10, 20, 30, 40)
print(my_tuple[1])  # 20 (인덱슀 1의 μš”μ†Œ)

μŠ¬λΌμ΄μ‹±(Slicing)

νŠœν”Œλ„ 리슀트처럼 μŠ¬λΌμ΄μ‹±μ„ 톡해 일뢀뢄을 μž˜λΌλ‚Ό 수 μžˆλ‹€.

my_tuple = (10, 20, 30, 40, 50)
print(my_tuple[1:4])  # (20, 30, 40)
  • s[:] : list s의 μ›μ†Œλ₯Ό λͺ¨λ‘ 좜λ ₯
  • s[:n] : 맨 μ•žλΆ€ν„° n-1 λ²ˆκΉŒμ§€ 좜λ ₯
  • s[n:] : n λ²ˆμ§ΈλΆ€ν„° 맨 λκΉŒμ§€ 좜λ ₯
  • s[n:m] : n λ²ˆμ§ΈλΆ€ν„° m-1 λ²ˆκΉŒμ§€ 좜λ ₯
  • s[-n:] : λ’€μ—μ„œ n-1λ²ˆμ§ΈλΆ€ν„° 맨 λκΉŒμ§€ 좜λ ₯
  • s[::k] : 맨 μ•žλΆ€ν„° kκ°œμ”© κ±΄λ„ˆλ›°λ©° 좜λ ₯
  • s[::-1] : 맨 끝뢀터 μ „λΆ€ 좜λ ₯

νŠœν”Œ 길이 확인 : len()

my_tuple = (1, 2, 3, 4, 5)
print(len(my_tuple))  # 5

νŠœν”Œ 병합 : + μ—°μ‚°μž

tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
merged_tuple = tuple1 + tuple2
print(merged_tuple)  # (1, 2, 3, 4, 5, 6)

νŠœν”Œ : * μ—°μ‚°μž

my_tuple = (1, 2, 3)
print(my_tuple * 3)  # (1, 2, 3, 1, 2, 3, 1, 2, 3)

νŠœν”Œ μš”μ†Œ 포함 μ—¬λΆ€ 확인 : in μ—°μ‚°μž

νŠœν”Œκ³Ό λ”λΆˆμ–΄ λ¦¬μŠ€νŠΈλ‚˜ λ¬Έμžμ—΄ 같은 μ‹œν€€μŠ€ μ•ˆμ— νŠΉμ • μš”μ†Œκ°€ ν¬ν•¨λ˜μ–΄ μžˆλŠ”μ§€ 확인할 λ•Œ in μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€.

my_tuple = (10, 20, 30)
print(20 in my_tuple)  # True
print(40 in my_tuple)  # False

νŠœν”Œ μ‚¬μš© μ˜ˆμ‹œ

νŠœν”Œμ€ λ³€κ²½λ˜μ§€ μ•Šμ•„μ•Ό ν•˜λŠ” κ³ μ •λœ 데이터λ₯Ό μ €μž₯ν•  λ•Œ 주둜 μ‚¬μš©λœλ‹€. 예λ₯Ό λ“€μ–΄, μ’Œν‘œλ‚˜ RGB 색상 κ°’μ²˜λŸΌ λ°”λ€Œμ§€ μ•ŠλŠ” 데이터λ₯Ό μ €μž₯ν•  λ•Œ μœ μš©ν•˜λ‹€.

# μ’Œν‘œ (x, y, z) 데이터λ₯Ό νŠœν”Œλ‘œ μ €μž₯
coordinates = (10, 20, 30)
print(coordinates)  # (10, 20, 30)

# RGB 색상 값을 νŠœν”Œλ‘œ μ €μž₯
color = (255, 0, 0)  # 빨강색
print(color)  # (255, 0, 0)

νŠœν”Œμ€ λΆˆλ³€μ„± 덕뢄에 μ•ˆμ •μ μΈ 데이터 관리와 더 λ‚˜μ€ μ„±λŠ₯을 μ œκ³΅ν•˜λ―€λ‘œ, μˆ˜μ •μ΄ ν•„μš” μ—†λŠ” 데이터λ₯Ό μ €μž₯ν•  λ•Œ μœ μš©ν•œ μžλ£Œν˜•μ΄λ‹€.


νŠœν”Œκ³Ό 리슀트의 차이

νŠΉμ§•νŠœν”Œ(Tuple)리슀트(List)
λ³€κ²½ κ°€λŠ₯ μ—¬λΆ€λ³€κ²½ λΆˆκ°€ (Immutable)λ³€κ²½ κ°€λŠ₯ (Mutable)
ν‘œν˜„ λ°©μ‹μ†Œκ΄„ν˜Έ()λŒ€κ΄„ν˜Έ[]
μ‚¬μš© λͺ©μ κ³ μ •λœ κ°’μ˜ λͺ¨μŒμžμ£Ό λ³€κ²½λ˜λŠ” κ°’μ˜ λͺ¨μŒ
λ©”λͺ¨λ¦¬ μ‚¬μš©λ” 적은 λ©”λͺ¨λ¦¬ μ‚¬μš©μƒλŒ€μ μœΌλ‘œ 더 λ§Žμ€ λ©”λͺ¨λ¦¬ μ‚¬μš©
μ„±λŠ₯κ³ μ •λœ 데이터λ₯Ό λ‹€λ£° λ•Œ 더 효율적자주 μˆ˜μ •λ˜λŠ” 데이터에 적합


μ°Έκ³ ,
https://docs.python.org/ko/3/tutorial/datastructures.html#tuples-and-sequences

profile
ΚšΘ‰Ιž

0개의 λŒ“κΈ€