List bilan tanishganimizdan so’ng, navbat uning “o’zgarmas ukasi” — Tuplega keldi. Tuple ko’pincha e’tibordan chetda qoladi, biroq aynan uning o’zgarmasligi ko’p hollarda dasturni xavfsiz va tezroq qiladi.
Tuple — tartiblangan va o’zgarmas (immutable) to’plam. U dumaloq qavs
()ichida yoziladi. Yaratilgach, uning elementlarini o’zgartirib, qo’shib yoki o’chirib bo’lmaydi.
Tuple yaratish
koordinata = (41.31, 69.24)
rang = ("qizil", "yashil", "ko'k")
print(koordinata)
print(rang[0])
print(len(rang))
(41.31, 69.24)
qizil
3
Ko’rib turganingizdek, indekslash List bilan bir xil ishlaydi. Farq faqat qavsda va — eng muhimi — o’zgarmaslikda.
O’zgarmaslik nimani anglatadi?
Tuple elementini o’zgartirishga urinsangiz, Python xato beradi. Bu qasddan qilingan cheklov — u ma’lumotning tasodifan buzilishidan himoya qiladi:
rang = ("qizil", "yashil", "ko'k")
# rang[0] = "sariq" # bu qator xato beradi: TypeError
print(rang)
('qizil', 'yashil', 'ko''k')
Agar ma’lumot dastur davomida o’zgarmasligi kerak bo’lsa — masalan, hafta kunlari, konfiguratsiya qiymatlari yoki geografik koordinatalar — Tuple aynan to’g’ri tanlov.
List va Tuple: qaysi biri qachon?
Ikkalasining farqini jadvalda aniq ko’rib olamiz:
| Xususiyat | List [] |
Tuple () |
|---|---|---|
| Tartiblangan | Ha | Ha |
| O’zgartirsa bo’ladi | Ha | Yo’q |
| Tezlik | Sekinroq | Tezroq |
| Qo’llanishi | O’zgaruvchi ma’lumot | Doimiy ma’lumot |
Amaliy qoida: agar to’plam dastur davomida o’zgarishi kerak bo’lsa — List, o’zgarmasa — Tuple. Tuple xotirada kamroq joy egallaydi va tezroq ishlaydi.
Tuple’ni ochib olish (unpacking)
Python’ning eng nafis imkoniyatlaridan biri — Tuple qiymatlarini bir yo’la bir nechta o’zgaruvchiga taqsimlash:
foydalanuvchi = ("Farrux", 26, "Toshkent")
ism, yosh, shahar = foydalanuvchi
print(ism)
print(yosh)
print(shahar)
Farrux
26
Toshkent
Bu “unpacking” deb ataladi va u kodni juda o’qiladigan qiladi. Funksiyalar bir nechta qiymat qaytarganda ham aynan shu mexanizm ishlaydi.
Bitta elementli Tuple
Diqqat qiling — bu ko’pchilik adashadigan nozik nuqta. Bitta elementli Tuple yaratishda vergul shart:
notogri = ("salom") # bu oddiy satr!
togri = ("salom",) # bu esa Tuple
print(type(notogri))
print(type(togri))
<class 'str'>
<class 'tuple'>
Vergulsiz qavs oddiy guruhlash sifatida qaraladi, shuning uchun bitta element uchun vergulni unutmang.
Xulosa
Bu darsda Tuple — tartiblangan va o’zgarmas to’plam bilan tanishdik, uning List’dan farqini, unpacking texnikasini va bitta elementli Tuple nozikligini ko’rib chiqdik. O’zgarmas ma’lumot uchun Tuple xavfsiz va tez tanlov. Keyingi darsda Set — takrorlanmas to’plamga o’tamiz.