Python dasturlash maktabi
ReplyⓂ️ Lug'atlar (dict).
Lug'atlar figurali (jingalak) qavs ichida joylashgan kalit va qiymatlardan tashkil topgan tartiblanmagan obektlar to'plami.Lug'atlar ro'yxatga o'xshaydi.Lug'atni ro'yxatdan asosiy farqlari lug'atda kalit va qiymatlar ikki nuqta : bilan ajratib figurali {} qavs ichiga yoziladi.Ⓜ️ Lug'at funksiyalari va uslublari
d = {'kalit1': 'qiymat1', 'kalit2': 'qiymat2'}
#Lug'at nusxasini qaytaradi.
print(d.copy())
{'kalit1': 'qiymat1', 'kalit2': 'qiymat2'}
#Kalitning qiymatini qaytaradi, agar kalit mavjud bo'lmasa bo'sh qiymat None ni qaytaradi.
print(d.get('kalit'))
None
print(d.get('kalit1', 1))
qiymat1
#Kalit va qiymatlarni qaytaradi.
print(d.items())
dict_items([('kalit1', 'qiymat1'), ('kalit2', 'qiymat2')])
for x, y in d.items():
#print(f"Key: {x} - Value: {y}")
Key: kalit1 - Value: qiymat1
Key: kalit2 - Value: qiymat2
#Lug'atdagi kalitlarni qaytaradi.
print(d.keys())
dict_keys(['kalit1', 'kalit2'])
#Lug'atdagi qiymatlarni qaytaradi.
print(d.values())
dict_values(['qiymat1', 'qiymat2'])
#Lug'atdan kalitni o'chiradi va qiymatini qaytaradi. Popni ishlatishdan ehtiyot bo'ling
print("Xotiradan egallangan joy hajmi: " + str(d.__sizeof__()) + " bayt")
print(d.pop('kalit1'))
print("Xotiradan egallangan joy hajmi: " + str(d.__sizeof__()) + " bayt")
Xotiradan egallangan joy hajmi: 216 bayt
qiymat1
Xotiradan egallangan joy hajmi: 216 bayt
#Lug'atdan kalitni o'chiradi
d = {'kalit1': 'qiymat1', 'kalit2': 'qiymat2'}
del d['kalit1']
{'kalit2': 'qiymat2'}
print(d)
{'kalit2': 'qiymat2'}
#Lug'atdagi oxirgi kalitni o'chiradi, kalit va qiymatini qaytaradi.
print(d.popitem())
('kalit2', 'qiymat2')
print(d)
{'kalit1': 'qiymat1'}
#pop funksiyasidan foydalanganda kalit va qiymatlar o'chiriladi lekin kompyuter xotirasidan ajratilgan (bayt) joy kamaymaydi.Xotiradan joyni bo'shatish uchun clear() funksiyasidan foydalansih kerak.
#Lug'atni tozalaydi.
print("Xotiradan egallangan joy hajmi: " + str(d.__sizeof__()) + " bayt")
print(d.clear())
print("Xotiradan egallangan joy hajmi: " + str(d.__sizeof__()) + " bayt")
Xotiradan egallangan joy hajmi: 216 bayt
None
Xotiradan egallangan joy hajmi: 48 bayt
#Agar kalit lug'atda mavjud bo'lsa qiymatini qaytaradi.
print(d.setdefault('kalit2'))
qiymat2
print(d)
{'kalit1': 'qiymat1', 'kalit2': 'qiymat2'}
#Agar kalit lug'atda mavjud bo'lmasa va qiymat ko'rsatilmagan bo'lsa None ni qaytaradi, kalitga bo'sh qiymat None berilib lug'atga qo'shiladi.
print(d.setdefault('kalit3'))
None
print(d)
{'kalit1': 'qiymat1', 'kalit2': 'qiymat2', 'kalit3': None}
#Agar kalit lug'atda mavjud bo'lmasa va qiymat ko'rsatilgan bo'lsa qiymatini qaytaradi va lug'atga qo'shadi.
print(d.setdefault('kalit3', 'qiymat3'))
qiymat3
print(d)
{'kalit1': 'qiymat1', 'kalit2': 'qiymat2', 'kalit3': 'qiymat3'}
#Lug'atga yangi kalit qiymatlarni qo'shadi yoki qiymatlarini o'zgaradi.
d.update({'qiymat4': "kalit4"})
print(d)
{'kalit1': 'qiymat1', 'kalit2': 'qiymat2', 'qiymat4': 'kalit4'}
d.update({'qiymat4': "kalit5"})
print(d)
{'kalit1': 'qiymat1', 'kalit2': 'qiymat2', 'qiymat4': 'kalit5'}
@pythonuz
31 · 3.1K ·