Tuple
Tuple нь list-тэй маш төстэй — олон утгыг дарааллан хадгалдаг. Гол ялгаа нь tuple өөрчлөгдөхгүй (immutable): нэг удаа үүсгэсний дараа элементийг нэмэх, устгах, өөрчлөх боломжгүй. Энэ хязгаарлалт нь сул тал биш — зарим нөхцөлд давуу тал болдог.
Tuple үүсгэх
# Дугуй хаалтаар
координат = (37.5665, 126.9780)
өнгө = (255, 128, 0)
# Хаалтгүйгээр (Python автоматаар tuple гэж таньдаг)
цэг = 10, 20
print(цэг) # (10, 20)
print(type(цэг)) # <class 'tuple'>
# Нэг элементтэй tuple — таслал шаардлагатай!
ганц = (42,)
print(type(ганц)) # <class 'tuple'>
ганц_биш = (42)
print(type(ганц_биш)) # <class 'int'> — tuple биш!
Элемент унших
Tuple-ийн элементийг list-тэй адил индекс ба slice-р уншина:
улирал = ("хавар", "зун", "намар", "өвөл")
print(улирал[0]) # хавар
print(улирал[-1]) # өвөл
print(улирал[1:3]) # ('зун', 'намар')
print(len(улирал)) # 4
# for давталт
for у in улирал:
print(у)
Tuple өөрчлөгдөхгүй — immutable
цэг = (10, 20)
# ❌ Өөрчлөх боломжгүй — TypeError гарна
# цэг[0] = 99
# ❌ Элемент нэмэх боломжгүй
# цэг.append(30)
# ✅ Шинэ tuple үүсгэж болно
шинэ_цэг = (99, 20)
print(шинэ_цэг) # (99, 20)
Tuple нь мэдлэгийн чухал дохио юм: "Эдгээр утгууд өөрчлөгдөх ёсгүй" гэдгийг хамтран ажиллагсдад, өөртөө ч мэдэгдэнэ.
Unpacking — задлан авах
Tuple-ийн хамгийн тохиромжтой онцлогуудын нэг — элементүүдийг нэгэн зэрэг variable-д хуваарилах:
координат = (47.9077, 106.8832)
өргөрөг, уртраг = координат
print(өргөрөг) # 47.9077
print(уртраг) # 106.8832
# RGB өнгөний код задлах
улаан, ногоон, хөх = (255, 128, 0)
print(f"R={улаан}, G={ногоон}, B={хөх}")
# Хэрэгцээгүй утгыг _ -р орлуулах
нэр, _, нас = ("Болд", "Улаанбаатар", 25)
print(нэр, нас) # Болд 25
Функц олон утга буцаахдаа tuple ашигладаг:
def хамгийн_их_бага(тоонууд):
return max(тоонууд), min(тоонууд) # tuple буцаана
их, бага = хамгийн_их_бага([5, 2, 8, 1, 9])
print(f"Хамгийн их: {их}") # 9
print(f"Хамгийн бага: {бага}") # 1
Tuple ба list: хэзээ алийг нь сонгох?
| Нөхцөл | Сонголт |
| ----------------------------------------- | -------- |
| Утгууд өөрчлөгдөхгүй (координат, RGB) | tuple |
| Элемент нэмэх, устгах шаардлагатай | list |
| Функц олон утга буцаах | tuple |
| Хэрэглэгчийн оруулсан мэдээлэл цуглуулах | list |
| Dictionary-ийн key болгон ашиглах | tuple |
| Өгөгдлийн бүтэц тогтмол байх ёстой | tuple |
# Tuple — dictionary-ийн key болгон ашиглаж болно
байршил_мэдээлэл = {
(47.9077, 106.8832): "Улаанбаатар",
(51.5074, -0.1278): "Лондон",
(35.6762, 139.6503): "Токио",
}
цэг = (47.9077, 106.8832)
print(байршил_мэдээлэл[цэг]) # Улаанбаатар
# ❌ List-ийг key болгон ашиглаж болохгүй — unhashable type алдаа гарна
Tuple методууд
Tuple-д зөвхөн хоёр метод байдаг (өөрчлөхгүй учир):
тоонууд = (3, 1, 4, 1, 5, 9, 2, 6, 1)
print(тоонууд.count(1)) # 3 — хэдэн 1 байна
print(тоонууд.index(5)) # 4 — 5-ийн байршил
print(тоонууд.index(1)) # 1 — анхны 1-ийн байршил
Бодит жишээ — RGB өнгөний палитр
def өнгө_тодорхойлох(rgb):
r, g, b = rgb
if r > g and r > b:
return "Улаавтар"
elif g > r and g > b:
return "Ногоовтор"
elif b > r and b > g:
return "Хөхөвтөр"
else:
return "Саарал/Цагаан"
палитр = [
(220, 50, 50),
(50, 180, 80),
(60, 100, 210),
(150, 150, 150),
]
for өнгө in палитр:
нэр = өнгө_тодорхойлох(өнгө)
print(f"RGB{өнгө} → {нэр}")
Гаралт:
RGB(220, 50, 50) → Улаавтар
RGB(50, 180, 80) → Ногоовтор
RGB(60, 100, 210) → Хөхөвтөр
RGB(150, 150, 150) → Саарал/Цагаан
Дараагийн хичээлд:
Tuple-ийн онцлог, ашиглах тохиромжтой үеийг ойлголлоо! Дараа нь dictionary (толь бичиг) — түлхүүр-утга хосоор өгөгдөл хадгалах Python-ийн хамгийн хүчирхэг өгөгдлийн бүтцийг судална.