Dinamik tiplashtirilgan


LUGʻATLAR ISHLASH ASOSLARI



Download 2,94 Mb.
bet40/77
Sana06.10.2022
Hajmi2,94 Mb.
#851613
1   ...   36   37   38   39   40   41   42   43   ...   77
Bog'liq
Dinamik

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.

Download 2,94 Mb.

Do'stlaringiz bilan baham:
1   ...   36   37   38   39   40   41   42   43   ...   77




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish