Asosiy qismga o‘tish

10. Lug‘at va to‘plam

Nazariya

Lug‘at (dict)

Lug‘at qiymatni kalit bo‘yicha saqlaydi:

yosh = {"Aziz": 16, "Vali": 17}
print(yosh["Aziz"])        # 16
yosh["Dilnoza"] = 16       # qo‘shish
print("Aziz" in yosh)      # True

Yo‘q kalitni so‘rash xato beradi. Xavfsiz yo‘l — get:

print(yosh.get("Bobur", 0))     # 0, xato yo‘q

Sanash

Eng ko‘p uchraydigan ish — nima necha marta uchraganini sanash:

sanoq = {}
for harf in matn:
    sanoq[harf] = sanoq.get(harf, 0) + 1

To‘plam (set)

To‘plamda takror yo‘q va tartib saqlanmaydi:

a = {3, 1, 4, 1, 5}     # {1, 3, 4, 5}
a.add(2)
print(4 in a)           # True
print(len(set(sonlar))) # nechta har xil son bor

Amallar: | (birlashma), & (kesishma), - (ayirma).

Nega bu tez

Ro‘yxatda x in a — barcha elementni ko‘rib chiqadi, ya’ni n amal.
Lug‘at va to‘plamda esa bu bir amal. 100 000 ta element ustida
qidirish kerak bo‘lsa, farq million martaga yetadi.

if x in royxat:    # sekin
if x in toplam:    # tez

Aylanish

for kalit in yosh:
    print(kalit, yosh[kalit])

for kalit, qiymat in yosh.items():
    print(kalit, qiymat)

Misol

matn = input()
sanoq = {}
for harf in matn:
    sanoq[harf] = sanoq.get(harf, 0) + 1
for harf, soni in sanoq.items():
    print(harf, soni)

Mashq masalalari

Nazorat savollari

1 Lug‘atda qiymat nima bo‘yicha saqlanadi? Bitta to‘g‘ri javob
2 Nima chiqadi? Kod nima chiqaradi
a = {3, 1, 4, 1, 5}
print(len(a))
3 Nega `x in toplam` `x in royxat` dan tez? Bitta to‘g‘ri javob
4 Nima chiqadi? Kod nima chiqaradi
d = {'a': 1}
print(d.get('b', 0))
5 Lug‘atda yo‘q kalitni `d['yoq']` deb so‘rash xato beradi. To‘g‘ri yoki noto‘g‘ri
6 Sanoqni xavfsiz oshirish uchun bo‘sh joyga nima yoziladi? Bo‘sh joyni to‘ldirish
sanoq[x] = sanoq.____(x, 0) + 1
7 To‘plam (`set`) haqida qaysilari to‘g‘ri? Bir nechta to‘g‘ri javob

Bir nechta javob to‘g‘ri bo‘lishi mumkin.

8 `len(set([1, 2, 2, 3, 3, 3]))` nechchi? Qisqa javob — yoziladi
9 Nima chiqadi? Kod nima chiqaradi
a = {1, 2, 3}
b = {2, 3, 4}
print(sorted(a & b))
10 Lug‘atning kalit va qiymatlarini birga aylanish uchun nima ishlatiladi? Bitta to‘g‘ri javob

Javoblar serverda tekshiriladi. Katta-kichik harf, apostrof shakli va ortiqcha bo‘shliq ahamiyatsiz.