⬅️ Bosh sahifaga
1 / 11

🐍 Python: Tuple

Tushuncha, Packing/Unpacking, Operatsiyalar

Assalomu alaykum, yosh dasturchilar! 😊

📚 Bugungi darsda o'rganamiz:

  • 🔹Tuple nima va qanday yaratiladi
  • 🔹Packing va Unpacking
  • 🔹Tuple operatsiyalari
  • 🔹List bilan farqlari
  • 🔹Amaliy mashqlar

🤔 Tuple nima?

Tuple - bu o'zgarmas (immutable) ro'yxat. Yaratgandan keyin o'zgartirib bo'lmaydi!
# Tuple yaratish mevalar = ("olma", "banan", "anor") print(mevalar) print(type(mevalar)) # Bo'sh tuple bo'sh_tuple = () print(bo'sh_tuple)
('olma', 'banan', 'anor') <class 'tuple'> ()

🔒 Tuple

O'zgarmas

() qavslar

Tez ishlaydi

📝 List

O'zgaruvchan

[] qavslar

Ko'p operatsiyalar

🛠️ Tuple yaratish

# Turli xil tuple'lar sonlar = (1, 2, 3, 4, 5) har_xil = (1, "salom", 3.14, True) # Bitta elementli tuple - e'tibor bering! noto'g'ri = (5) # Bu tuple emas, oddiy son to'g'ri = (5,) # Bu tuple, vergul kerak! print(type(noto'g'ri)) # <class 'int'> print(type(to'g'ri)) # <class 'tuple'>
Bitta elementli tuple yaratishda vergul (,) qo'yishni unutmang!

🏋️ Mashq

Quyidagi tuple'larni yarating:

  • 3 ta meva nomi
  • 5 ta son
  • Bitta elementli tuple

📦 Packing

Packing - bir nechta qiymatni tuple sifatida birlashtirish
# Packing - qiymatlarni tuple'ga yig'ish ism = "Ali" yosh = 15 sinf = "10-A" # Bitta tuple'da jamlash talaba = (ism, yosh, sinf) print(talaba) # Yoki to'g'ridan-to'g'ri talaba_info = ("Zara", 16, "9-B") print(talaba_info)
('Ali', 15, '10-A') ('Zara', 16, '9-B')
Packing - ma'lumotlarni bitta joyda saqlash uchun qulay usul!

📤 Unpacking

Unpacking - tuple elementlarini alohida o'zgaruvchilarga ajratish
# Unpacking - tuple'dagi qiymatlarni ajratish talaba = ("Ahmad", 17, "11-sinf") # Har bir elementni alohida o'zgaruvchiga ism, yosh, sinf = talaba print(f"Ism: {ism}") print(f"Yosh: {yosh}") print(f"Sinf: {sinf}") # Xato - element soni mos kelmasa # ism, yosh = talaba # ValueError!
Ism: Ahmad Yosh: 17 Sinf: 11-sinf
Unpacking'da o'zgaruvchilar soni tuple elementlari soniga teng bo'lishi kerak!

🌟 Murakkab Unpacking

# * yordamida qolgan elementlarni olish sonlar = (1, 2, 3, 4, 5) # Birinchi va oxirgi, qolganini list'da birinchi, *o'rtadagilar, oxirgi = sonlar print(f"Birinchi: {birinchi}") print(f"O'rtadagilar: {o'rtadagilar}") print(f"Oxirgi: {oxirgi}") # Faqat birinchi 2 ta kerak a, b, *qolgan = sonlar print(f"a = {a}, b = {b}") print(f"Qolgan: {qolgan}")
Birinchi: 1 O'rtadagilar: [2, 3, 4] Oxirgi: 5 a = 1, b = 2 Qolgan: [3, 4, 5]
* belgisi bilan qolgan elementlarni list sifatida olish mumkin!

⚙️ Tuple Operatsiyalari

# Indekslash va kesish mevalar = ("olma", "banan", "anor", "uzum") print(mevalar[0]) # olma print(mevalar[-1]) # uzum print(mevalar[1:3]) # ('banan', 'anor') # Birlashtirish tuple1 = (1, 2, 3) tuple2 = (4, 5, 6) birlashtirish = tuple1 + tuple2 print(birlashtirish) # (1, 2, 3, 4, 5, 6) # Takrorlash takror = ("salom",) * 3 print(takror) # ('salom', 'salom', 'salom')
olma uzum ('banan', 'anor') (1, 2, 3, 4, 5, 6) ('salom', 'salom', 'salom')

🔍 Element Tekshirish

# Element bor-yo'qligini tekshirish mevalar = ("olma", "banan", "anor") print("banan" in mevalar) # True print("nok" in mevalar) # False print("olma" not in mevalar) # False # Tuple uzunligi print(len(mevalar)) # 3 # Element soni print(mevalar.count("olma")) # 1 # Element indeksi print(mevalar.index("anor")) # 2
True False False 3 1 2
Tuple'da faqat 2 ta metod bor: count() va index()

⚖️ Tuple vs List

🔒 Tuple

  • O'zgarmas
  • () qavslar
  • Tez ishlaydi
  • Kam xotira
  • Dictionary key bo'lishi mumkin

📝 List

  • O'zgaruvchan
  • [] qavslar
  • Ko'p metodlar
  • Ko'p xotira
  • Dictionary key bo'la olmaydi
# Tuple'ni o'zgartirib bo'lmaydi mevalar = ("olma", "banan") # mevalar[0] = "anor" # TypeError! # Ammo tuple ichidagi list'ni o'zgartirish mumkin har_xil = (1, ["olma", "banan"], 3) har_xil[1][0] = "anor" # Bu ishlaydi! print(har_xil) # (1, ['anor', 'banan'], 3)

🏋️ Amaliy Mashqlar

Mashq 1: Talaba ma'lumotlari

# Talaba ma'lumotlarini tuple'da saqlang talaba = ("Oybek", 16, "10-A", 4.8) # Unpacking qiling ism, yosh, sinf, baho = talaba print(f"{ism} {yosh} yoshda, {sinf} sinfda o'qiydi") print(f"O'rtacha bahosi: {baho}")

Mashq 2: Koordinatalar

# Nuqta koordinatalari nuqta1 = (3, 4) nuqta2 = (7, 8) # Koordinatalarni ajratish x1, y1 = nuqta1 x2, y2 = nuqta2 # Masofa hisoblash masofa = ((x2-x1)**2 + (y2-y1)**2)**0.5 print(f"Masofa: {masofa}")

🎯 Xulosa

Bugun o'rganganlarimiz:

Tuple'larni o'zgarmas ma'lumotlar kerak bo'lganda ishlating: koordinatalar, konfiguratsiyalar, konstantalar

🏠 Uy vazifasi

Kitob ma'lumotlarini tuple'da saqlang va barcha operatsiyalarni sinab ko'ring!

🎉 Rahmat!

Savollaringiz bormi? 😊