Lug'atlar (Dictionary) bilan tanishish
Python lug'ati (dictionary) — ro'yxatlar va kortejlarga o'xshash elementlar to'plami. Biroq, ro'yxatlar va kortejlardan farqli o'laroq, lug'atdagi har bir element kalit-qiymat juftligi (key-value pair, kalit va qiymatdan iborat).
Biz lug'atni kalit: qiymat juftliklarini figurali qavslar {} ichiga, vergul bilan ajratib joylashtirish orqali yaratamiz. Masalan,
# lug'at yaratish
country_capitals = {
"Germany": "Berlin",
"Canada": "Ottawa",
"England": "London"
}
# lug'atni chop etish
print(country_capitals)
Natija
{'Germany': 'Berlin', 'Canada': 'Ottawa', 'England': 'London'}
country_capitals lug'ati uchta elementga (kalit-qiymat juftligiga) ega, bunda 'Germany' — kalit, 'Berlin' esa unga berilgan qiymat va hokazo.
Python lug'ati

Eslatmalar:
dict() funksiyasi yordamida ham yaratishimiz mumkin. Ko'proq bilish uchun Python dict() sahifasiga tashrif buyuring.Lug'at kalitlari o'zgarmas bo'lishi kerak
O'zgarmas obyektlar yaratilgandan so'ng o'zgartirilishi mumkin emas. Pythondagi ba'zi o'zgarmas obyektlar — integer, kortej va satr.
# to'g'ri lug'at
# kalit sifatida integer
my_dict = {1: "one", 2: "two", 3: "three"}
# to'g'ri lug'at
# kalit sifatida kortej
my_dict = {(1, 2): "one two", 3: "three"}
# noto'g'ri lug'at
# Xato: kalit sifatida ro'yxatdan foydalanishga ruxsat yo'q
my_dict = {1: "Hello", [1, 2]: "Hello Hi"}
# to'g'ri lug'at
# kalit sifatida satr, qiymat sifatida ro'yxat
my_dict = {"USA": ["Chicago", "California", "New York"]}
Bu misolda biz lug'atlar uchun kalit sifatida integer, kortej va satrlardan foydalandik. Kalit sifatida ro'yxatdan foydalanganimizda, ro'yxatning o'zgaruvchan (mutable) tabiati sababli xato xabari yuz berdi.
Eslatma: Lug'at qiymatlari, jumladan ro'yxat kabi o'zgaruvchan turlar ham, istalgan ma'lumot turida bo'lishi mumkin.
Lug'at kalitlari noyob (unique) bo'lishi kerak
Lug'atning kalitlari noyob bo'lishi kerak. Agar takrorlanuvchi kalitlar bo'lsa, kalitning keyingi qiymati oldingi qiymatning ustidan yoziladi.
hogwarts_houses = {
"Harry Potter": "Gryffindor",
"Hermione Granger": "Gryffindor",
"Ron Weasley": "Gryffindor",
# boshqa uy bilan takrorlangan kalit
"Harry Potter": "Slytherin"
}
print(hogwarts_houses)
Natija
{'Harry Potter': 'Slytherin', 'Hermione Granger': 'Gryffindor', 'Ron Weasley': 'Gryffindor'}
Bu yerda, Harry Potter kaliti avval Gryffindorga bog'lanadi. Biroq, Harry Potter Slytheringa bog'langan ikkinchi yozuv ham bor.
Lug'atda takrorlanuvchi kalitlarga ruxsat berilmagani uchun, oxirgi yozuv Slytherin oldingi qiymat Gryffindorning ustidan yoziladi.
Lug'at elementining qiymatiga kalitni kvadrat qavslar ichiga joylashtirish orqali murojaat qilishimiz mumkin.
country_capitals = {
"Germany": "Berlin",
"Canada": "Ottawa",
"England": "London"
}
# kalitlarning qiymatiga murojaat qilish
print(country_capitals["Germany"]) # Natija: Berlin
print(country_capitals["England"]) # Natija: London
Eslatma: Lug'at elementlariga murojaat qilish uchun get() metodidan ham foydalanishimiz mumkin.
Yangi kalitga qiymat berish orqali lug'atga element qo'shishimiz mumkin. Masalan,
country_capitals = {
"Germany": "Berlin",
"Canada": "Ottawa",
}
# kaliti "Italy" va qiymati "Rome" bo'lgan elementni qo'shish
country_capitals["Italy"] = "Rome"
print(country_capitals)
Natija
{'Germany': 'Berlin', 'Canada': 'Ottawa', 'Italy': 'Rome'}
Lug'atdan elementni o'chirish uchun del operatoridan foydalanishimiz mumkin. Masalan,
country_capitals = {
"Germany": "Berlin",
"Canada": "Ottawa",
}
# "Germany" kalitiga ega elementni o'chirish
del country_capitals["Germany"]
print(country_capitals)
Natija
{'Canada': 'Ottawa'}
Eslatma: Lug'atdan elementni o'chirish uchun pop() metodidan ham foydalanishimiz mumkin.
Agar lug'atdagi barcha elementlarni bir vaqtning o'zida o'chirish kerak bo'lsa, clear() metodidan foydalanishimiz mumkin.
country_capitals = {
"Germany": "Berlin",
"Canada": "Ottawa",
}
# lug'atni tozalash
country_capitals.clear()
print(country_capitals)
Natija
{}
Python lug'atlari o'zgaruvchan (mutable). Uning kalitiga murojaat qilish orqali lug'at elementining qiymatini o'zgartirishimiz mumkin. Masalan,
country_capitals = {
"Germany": "Berlin",
"Italy": "Naples",
"England": "London"
}
# "Italy" kalitining qiymatini "Rome"ga o'zgartirish
country_capitals["Italy"] = "Rome"
print(country_capitals)
Natija
{'Germany': 'Berlin', 'Italy': 'Rome', 'England': 'London'}
Eslatma: Lug'at elementlarini qo'shish yoki o'zgartirish uchun update() metodidan ham foydalanishimiz mumkin.
Lug'at — tartiblangan elementlar to'plami (Python 3.7'dan boshlab), shuning uchun u o'z elementlarining tartibini saqlaydi.
for sikli yordamida lug'at kalitlari bo'ylab birma-bir aylanib chiqishimiz mumkin.
country_capitals = {
"United States": "Washington D.C.",
"Italy": "Rome"
}
# lug'at kalitlarini birma-bir chop etish
for country in country_capitals:
print(country)
print()
# lug'at qiymatlarini birma-bir chop etish
for country in country_capitals:
capital = country_capitals[country]
print(capital)
Natija
United States
Italy
Washington D.C.
Rome
len() funksiyasi yordamida lug'atning uzunligini topishimiz mumkin.
country_capitals = {"England": "London", "Italy": "Rome"}
# lug'at uzunligini olish
print(len(country_capitals)) # Natija: 2
numbers = {10: "ten", 20: "twenty", 30: "thirty"}
# lug'at uzunligini olish
print(len(numbers)) # Natija: 3
countries = {}
# lug'at uzunligini olish
print(len(countries)) # Natija: 0
Mana keng ishlatiladigan ba'zi lug'at metodlari.
| Funksiya | Tavsif |
|---|---|
pop() | Belgilangan kalitga ega elementni o'chiradi. |
update() | Lug'at elementlarini qo'shadi yoki o'zgartiradi. |
clear() | Lug'atdan barcha elementlarni o'chiradi. |
keys() | Lug'atning barcha kalitlarini qaytaradi. |
values() | Lug'atning barcha qiymatlarini qaytaradi. |
get() | Belgilangan kalitning qiymatini qaytaradi. |
popitem() | Oxirgi qo'shilgan kalit va qiymatni kortej sifatida qaytaradi. |
copy() | Lug'atning nusxasini qaytaradi. |
in va not in operatorlari yordamida lug'atda kalit mavjud yoki yo'qligini tekshirishimiz mumkin.
file_types = {
".txt": "Text File",
".pdf": "PDF Document",
".jpg": "JPEG Image",
}
# in va not in operatorlaridan foydalanish
print(".pdf" in file_types) # Natija: True
print(".mp3" in file_types) # Natija: False
print(".mp3" not in file_types) # Natija: True
Eslatma: in operatori kalit mavjudligini tekshiradi; u qiymat mavjud yoki yo'qligini tekshirmaydi.