AXV

Tuple: o‘zgarmas ketma-ketlik

Koordinata, rang va sozlamalarni «muhrlab» saqlaymiz

9-sinfAdvanced Back-end va DevOps5-hafta · 13-dars

Bugun nimalarni o‘rganamiz?

Tuple nima?

List bilan farqi va qachon ishlatiladi

Yaratish va indeks

Qavs, vergul, bitta elementli tuple, slicing

Metodlar

count(), index() va list orqali o‘zgartirish

Eslaylik: 4-hafta

string

"Ali" - belgilar ketma-ketligi. O‘zgarmas: s[0] = "J" xato beradi.
VS

list

[1, 2, 3] - o‘zgaruvchan: append(), insert(), pop() ishlaydi.

Bugungi savol: list kabi tartibli, lekin string kabi o‘zgarmas tuzilma bormi?

01

Tuple nima?

Tartibli, lekin o‘zgarmas elementlar to‘plami

Ta’rif (rasmiy qo‘llanma, 1.67-rasm)

Tuple - bu tartibli (ordered) elementlar to‘plami. Listga o‘xshaydi, lekin eng katta farqi: tuple o‘zgarmas (immutable).

talaba = ("Ali", "Valiyev", 2011)
print(talaba)        # ('Ali', 'Valiyev', 2011)
print(type(talaba))  # <class 'tuple'>
        

Daftar va muhrlangan hujjat

list [ ] "Python" "Linux" -> "SQL" o‘zgartirsa bo‘ladi tuple ( ) 41.31 69.28 muhr o‘zgarmaydi

Qismlar ustiga sichqoncha olib boring yoki bosing.

Qachon tuple ishlatiladi?

O‘zgarmas ma’lumot

bosing

Koordinata (41.31, 69.28), rang (255, 128, 0), config (sozlamalar).

Bir nechta qiymat

bosing

Funksiya bir nechta qiymat qaytarganda. Buni 6-haftada funksiyalarda ko‘ramiz.

«Record»

bosing

Kichik struktura: ("Ali", "Valiyev", 2011) - bitta odam haqida bog‘liq ma’lumot.

02

Yaratish va indeks

Qavs, vergul va slicing

Tuple yaratish (1.68-rasm)


fanlar = ("Matematika", "Fizika", "Informatika")
        

Qavslar ( ), elementlar orasida vergul.

Tuple yaratish (1.68-rasm)


fanlar = ("Matematika", "Fizika", "Informatika")
print(fanlar)        # ('Matematika', 'Fizika', 'Informatika')
print(len(fanlar))   # 3
        
Yaratish list’ga o‘xshaydi, faqat qavs boshqa: [ ] emas, ( ).

Vergulning sirli kuchi (1.69-rasm)

a = (5) <class 'int'> b = (5,) <class 'tuple'>

Tuple’ni qavs emas, vergul yaratadi. Bitta elementda vergul shart!

Mini-test

Qaysi yozuv bitta elementli tuple yaratadi?

Vergul tuple yaratadi. (7) - int, [7] - list, {7} - set.

Indeks va slicing (1.70-rasm)

0 1 2 3 4 "Dush" "Sesh" "Chor" "Pay" "Juma" -5 -4 -3 -2 -1 kunlar[1:3] -> ('Sesh', 'Chor') kunlar[-1]

Chuqurroq misollar uchun pastga

Indeks: kodda


kunlar = ("Dush", "Sesh", "Chor", "Pay", "Juma")
print(kunlar[0])     # Dush
print(kunlar[-1])    # Juma
print(kunlar[1:3])   # ('Sesh', 'Chor')
          
Slicing natijasi ham tuple bo‘ladi.
03

O‘zgarmaslik va metodlar

TypeError, list orqali o‘zgartirish, count() va index()

Tuple’ni o‘zgartirib bo‘lmaydi (1.71-rasm)


rang = (255, 128, 0)
rang[0] = 100
        
TypeError: 'tuple' object does not support item assignment
Tuple’da append(), remove() ham yo‘q - ular list metodlari.

O‘zgartirish kerak bo‘lsa: 3 qadam

1. Listga aylantiramiz

r = list(rang) -> [255, 128, 0]

2. O‘zgartiramiz

r[0] = 100 -> [100, 128, 0]

3. Yana tuple qilamiz

rang = tuple(r) -> (100, 128, 0)

count() va index() (1.72, 1.73-rasm)

baholar = (5, 4, 5, 3, 5, 4) 5 4 5 3 5 4 baholar.count(5) -> 3 element necha marta uchraydi baholar.index(3) -> 3 birinchi uchragan indeks

Bashorat qiling

t = (10, 20, 30, 20) bo‘lsa, t.index(20) nimaga teng?

index() birinchi uchragan joyni qaytaradi: 20 avval 1-indeksda turibdi.

List yoki tuple?

list [ ]

O‘zgaruvchan. Metodlar ko‘p: append, insert, remove, pop, clear, sort... Fanlar ro‘yxati, xaridlar ro‘yxati.

tuple ( )

O‘zgarmas. Metodlar kam, ammo foydali: faqat count va index. Koordinata, rang, sozlama.

0
tuple metodi
0
list metodi

Amaliy topshiriq 20 daqiqa

Oson(ism, familiya, yil) tuple yarating va har elementni alohida qatorda chiqaring.
O'rtarang = (0, 0, 255) ning ikkinchi elementini list orqali 200 ga o‘zgartiring.
Qiyin(5, 3, 4, 5, 5, 2, 4, 5) da har bir baho (2-5) necha marta uchrashini for va count() bilan chiqaring.

Xulosa

Bugun o‘rgandik

Tuple - tartibli va o‘zgarmas. (5,) da vergul shart. Indeks, slicing, count(), index(). O‘zgartirish: list -> tuple.

Uyga vazifa

tuple_mashq.py: hafta kunlari, count() va koordinatani list orqali yangilash.

Keyingi dars: set - takrorlanmaydigan elementlar to‘plami.