LUGʻATLAR ISHLASH ASOSLARI
Pyton tilida turli tipdagi ma’lumotlarni saqlash uchun turli tuzilmalar ishlab chiqilgan. Ana shunday tuzilmalardan biri lugʻat (dict) boʻlib, u ma’lumotlarni qalit-qiymat shaklida saqlash imkonini beradi. Lugʻatdagi qiymatlarga ularning kaliti yordamida murojaat qilish mumkin.
Lugʻatlar { } (figurali qavslar) orasida koʻrsatiladigan va bir-biridan vergul bilan ajratilgan elementlar ketma-ketligi tarzida e`lon qilinadi. Lugʻatning har bir elementi “qiymat: kalit” juftligi orqali ifodalanadi. Lugʻatning qiymatlari takrorlanishi mumkin, ammo ularning kalitlari betakror boʻlishi lozim.
Quyida lugʻatlarni tashkil qilish uchun bir qator namunalar keltirilmoqda.
dict_namuna = { } # boʻsh lugʻat
dict_namuna = {1:'kitob', 2:'daftar'} # kaliti butun son boʻlgan lugʻat
dict_namuna = {'meva':'olma', 1:[4, 6, 8]} # turli tipdagi kalitli lugʻat. Shuningdek, lugʻatlarni dict() funktsiyasi yordamida yaratish mumkin :
dict_namuna = dict({1:'kitob', 2:'daftar'})
yoki
dict_namuna = dict([(1,'kitob'), (2,'daftar')])
Lugʻatlar ichma-ich joylashgan boʻlishi ham mumkin: bu shuni anglatadiki, bir lugʻat boshqa lugʻat ichida e`lon qilinadi. Masalan:
dict_namuna = {
1: {'talaba1': 'Aliyev', 'talaba2': 'Valiyev', 'talaba3': 'Qodirova'},
2: {'kurs1': 'Informatika', 'kurs2': 'Matematika', 'kurs3': 'Geometriya'}
}
Lugʻat elementlarini print operatori yordamida odatiy usul bilan chop qilish mumkin. CHop qilishdan avval interpretator lugʻat elementlarini tasodifiy ravishda joylashtiradi. Masalan:
dict_namuna = {"Companiya":"Toyota", "model":"Premio", "yili":2012}
print(dict_namuna)
Lugʻat elementlari bilan ishlash uchun kalitlarini []-kvadrat qavslar orasida koʻrsatib murojaat qilinadi:
dict_namuna = {"Companiya":"Toyota", "model":"Premio", "yili":2012}
x = dict_namuna["model"]
print(x)
Quyidagi namunaga e`tibor bering:
dict = {'Familiyasi': 'aliyev', 'Yoshi': 23, 'Fani': 'Geometriya'}
print("Talaba familiyasi:", dict['Familiyasi'])
print("Fani:", dict['Fani'])
print("Yoshi:", dict['yoshi'])
Shuningdek lugʻat elementlari bilan ishlash uchun get() funktsiyasi ham nazarda tutilgan. Bu funktsiya umumiy koʻrinishi
lugʻat_nomi.get(kalit)
boʻlgan koʻrsatma shaklida qoʻllaniladi. Masalan:
dict_namuna = {"Companiya":"Toyota", "model":"Premio", "yili":2012}
x = dict_namuna.get("model")
print(x)
Lugʻatga yangi elementlarni bir nechta usullar bilan qoʻshish mumkin. Quyida ularning ayrimlari bayon qilinadi.
dict_namuna = {"Companiya":"Toyota", "model":"Premio", "yili":2012}
dict_namuna["Quvvati "] = "85 ot kuchi"
print(dict_namuna)
Navbatdagi usulda boʻsh lugʻat olib, unga yangi elementlar ketma-ket qoʻshiladi:
Yangi = {}
Yangi[0] = 'Olma'
Yangi[2] = 'Nok'
Yangi[5] = 20
print("3 ta element qoʻshildi: ")
print(Yangi)
Keltirilgan namunada “Olma”, “Nok” va “20” qiymatlarga 0, 2 va 5 kalitlar mos qoʻyilgan.
Zarur hollarda bitta kalit bilan bir nechta qiymatlarni e`lon qilish mumkin:
Yangi [2] = 1, "Uzum", 4
print(Yangi)
Bu yerda 2 kalitga (1, "Uzum", 4) qiymatlar mos qoʻyilgan.
Lugʻat elementlarini kalitlar yordamida tahrirlash mumkin.
dict_namuna["yili"] = 2014
Lugʻat elementlarini bir necha usullar bilan oʻchirish mumkin.
Koʻrsatilgan kalitli element lugʻatdan del buyrugʻi yordamida oʻchirilishi mumkin. Masalan:
dict_namuna = {"Companiya":"Toyota", "model":"Premio", "yili":2012}
del dict_namuna["yili"]
print(dict_namuna)
Yana bir usul argumentida kalit koʻrsatiladigan pop() funktsiyasi bilan bogʻliq. Masalan:
dict_namuna = {"Companiya":"Toyota", "model":"Premio", "yili":2012}
dict_namuna.pop("yili")
popitem() funktsiyasi lugʻatning oxirgi elementini oʻchiradi. Bu funktsiya uchun argumentni koʻrsatish shart emas.
dict_namuna = {"Companiya":"Toyota", "model":"Premio", "yili":2012}
dict_namuna.popitem()
print(dict_namuna)
Bu yerda interpretator lugʻat elementlarini tasodifiy joylashtirganda “model” kaliti lugʻat oxiriga joylashtirilgan va shu sababli oʻchirilgan.
Lugʻatdagi barcha elementlarni toʻlaligicha oʻchirish uchun del operatoridan foydalanish mumkin:
dict_namuna = {"Companiya":"Toyota", "model":"Premio","yili":2012}
del dict_namuna
print(dict_namuna)
Ayrim hollarda lugʻatni boʻsh qoldirgan holda, uning elementlarini oʻchirishga toʻgʻri kelishi mumkin. Bu muammoni clear() funktsiyasi yordamida hal qilinadi:
dict_namuna.clear()
print(dict_namuna)
items() metodi lugʻat elementlarini ob`ektlar shaklida birma-bir koʻrib chiqish uchun qoʻllaniladi. Bu ob`ekt “kalit-qiymat” juftligi shaklida ifodalanadi.
dict_namuna = {"Companiya":"Toyota","model": "Premio", "yili":2012}
for k, v in dict_namuna.items():
print(k, v)
items() funktsiyasi qaytarayotgan ob`ektlardan lugʻatdagi oʻzgarishlarni koʻrsatish uchun ham foydalanish mumkin:
dict_namuna = {"Companiya":"Toyota", "model":"Premio", "yili":2012}
dict_namuna['model']='Klassic'
x=dict_namuna.items()
print(x)
Koʻrsatilgan kalit va qiymatli lugʻatlarni tashkil qilish uchun fromkeys() metodidan foydalanish mumkin. Bu metod umumiy koʻrinishda quyidagicha yoziladi:
dictionary.fromkeys(kalit, qiymat),
bu yerda kalit - takrorlanuvchi ob`ekt kalitlari; qiymat parametri barcha kalitlar uchun qiymat boʻlib xizmat qiladi. Agar bu parametr koʻrsatilmasa, qiymat sifatida toʻgʻridan-toʻgʻri — None olinadi. Bu metod kalitlarni birma-bir koʻrib chiqadi va ularni koʻrsatilgan qiymatlar bilan bogʻlaydi.
Faraz qilaylik, uchta kalitli va bir xil qiymatli lugʻatni tashkil qilish talab qilingan boʻlsin. Bu muammoni quyidagicha hal qilish mumkin:
familiyasi=('Aliyev', 'Valiyev', 'soliyev')
yoshi=18
dict_namuna = dict.fromkeys(familiyasi, yoshi)
Koʻrsatilgan kalitga taalluqli boʻlgan qiymatni olish uchun setdefault() metodi hizmat qiladi. Agar kalit mavjud boʻlmasa, lugʻatga qiymati bilan birga qoʻshib qoʻyiladi. Bu metod umumiy koʻrinishda quyidagicha yoziladi:
dictionary.setdefault(keyname, value),
bu yerda keyname parametri majburiy va u qiymatini qaytarish lozim boʻlgan kalit nomini anglatadi; value parametri esa majburiy emas. Agar kalit mavjud boʻlmasa, u holda funktsiyaning qiymati kalitga qiymat qilib beriladi. Bu qiymat toʻgʻridan-toʻgʻri — None.
dict_namuna = {"Companiya": "Toyota", "model": "Premio", "yili": 2012}
y=dict_namuna.setdefault("model")
x = dict_namuna.setdefault("color", "Yashil")
print(x, y)
print(dict_namuna)
keys() metodi lugʻatdagi barcha kalitlar roʻyhatidan iborat boʻlib, oʻzida takrorlanuvchi ob`ektlarni mujassamlashtiradi. SHuningdek, items() metodi kabi lugʻatdagi oʻzgarishlarni qayd etadi. keys() metodi umumiy koʻrinishda quyidagicha yoziladi:
dictionary.keys()
Masalan:
dict_namuna = {"Companiya":"Toyota", "model":"Premio", "yili": 2012}
x = dict_namuna.keys()
print(x)
Odatda bu metod lugʻatdagi barcha kalitlarni birma-bir koʻrib chiqish uchun qoʻllaniladi:
dict_namuna = {"Companiya": "Toyota", "model": "Premio", "yili": 2012}
for k in dict_namuna.keys():
print(k)
Yuqoridagi metodlardan tashqari lugʻatlar bilan ishlash uchun len() (lugʻatdagi elementlar sonini aniqlaydi) hamda copy() (lugʻatdan nusxa olish) kabi metodlardan ham foydalanish mumkin.
Do'stlaringiz bilan baham: |