Kalit bilan bir zumda topamiz va beshta tuzilmani bitta loyihada birlashtiramiz
9-sinfAdvanced Back-end va DevOps5-hafta · 15-darskey: value juftliklar va 4 ta xususiyat
d["key"], get(), yangilash, qo‘shish
«Talabalar ma’lumotlari»: 5 ta tuzilma birga
so‘z -> tarjima"book" -> "kitob"
ism -> raqam"Ona" -> "+99890..."
maydon -> qiymat"username" -> "ali_2011"
key: value juftliklarda saqlanadigan tuzilma
Kalit orqali bir zumda
Yangilash, qo‘shish, o‘chirish
Bir xil kalit ikki marta bo‘lmaydi
Python 3.7+ da kiritilgan tartib
d["key"], get(), yangilash va qo‘shish
user = {"name": "Ali", "age": 15, "city": "Toshkent"}
print(user["name"]) # Ali
print(user["phone"])
KeyError: 'phone'
user["phone"]Kalit yo‘q -> KeyError. Dastur shu joyda to‘xtaydi.
user.get("phone", "yo'q")Kalit yo‘q -> "yo'q" qaytadi. Kod ishini to‘xtatmaydi.
[ ], bo‘lmasligi mumkin bo‘lsa get().
user = {"name": "Ali", "age": 15}
user = {"name": "Ali", "age": 15}
user["age"] = 23 # bor kalit: yangilanadi
user["phone"] = "+99890" # yangi kalit: qo'shiladi
print(user) # {'name': 'Ali', 'age': 23, 'phone': '+99890'}
d = {"a": 1, "b": 2}; d["a"] = 10; d["c"] = 3. len(d) nimaga teng?
{'a': 10, 'b': 2, 'c': 3}.
texts = {"uzl": "Salom!", "rus": "Привет!", "en": "Hello!"}
til = "en"
print(texts[til]) # Hello!
Yangi til qo‘shish - bitta qator. Taqqoslash uchun pastga
if til == "uzl":
print("Salom!")
elif til == "rus":
print("Привет!")
elif til == "en":
print("Hello!")
«Talabalar ma’lumotlari» loyihasi
ism = "Ali"; familiya = "Valiyev"
fanlar = ["Matematika", "Informatika"]
fanlar.append("Fizika")shaxsiy = (2011, "AB1234567")
baholar = sorted(set([5, 4, 5, 5, 3]))
# [3, 4, 5]talaba = {"toliq_ism": ism + " " + familiya,
"fanlar": fanlar, "shaxsiy": shaxsiy,
"baholar": baholar}
talaba["sinf"] = "9-sinf"print("Talaba:", talaba["toliq_ism"])
print("Yil:", talaba["shaxsiy"][0])
print("Tel:", talaba.get("telefon", "kiritilmagan"))$ python3 talaba.py
Talaba: Ali Valiyev
Fanlar soni: 4
Tug'ilgan yil: 2011
Turli baholar: [3, 4, 5]
Telefon: kiritilmagan
Sinf: 9-sinf
| Tuzilma | Ko‘rinishi | O‘zgaradimi? | Qachon |
|---|---|---|---|
| string | "Ali" | Yo‘q | Matn, ism |
| list | [1, 2, 3] | Ha | Tartibli ro‘yxat |
| tuple | (41.3, 69.2) | Yo‘q | O‘zgarmas yozuv |
| set | {5, 4} | Ha | Takrorsiz to‘plam |
| dict | {"ism": "Ali"} | Ha | Kalit bo‘yicha topish |
O‘quvchining tug‘ilgan yili va guvohnoma raqami (o‘zgarmaydi) uchun eng mos tuzilma?
ism, yosh, shahar bilan dict yarating; telefon ni get() bilan oling.texts.get(kod, "Til topilmadi").key: value, d["key"] va KeyError, get(), yangilash va qo‘shish. 5 ta tuzilma bitta loyihada.
lugat.py va loyihani yakunlash: yangi fan va telefon kaliti.
Keyingi hafta: DRY prinsipi va funksiyalar - takroriy kodni bitta joyga yig‘amiz.