Python Dictionaries
Dictionary bu tartiblanmagan, o’zgartirilishi mumkin bo’lgan hamda
indekslangan to’plamdir. Pythonda dictionary figurali qavslar yordamida yoziladi
hamda ular kalitlar(keys) va qiymatlar(values) ga ega.
d = { 'ism': 'Zohidjon', 'yosh': 27, 'mutaxassislik': 'Amaliy
matematika'}
print(d)
Dictionary bo’ylab sikl
For siklidan foydalanib dictionary ustida sikl tashkil qilish mumkin.
Dictionary bo’ylab sikl tashkil qilingandanda faqat dictionary kalitlarini
qaytaradi, lekin shu bilan birgalikda uning qiymatlarini olish yo’llari ham mavjud.
for x in d:
print(x)
Natija:
ism
yosh
mutaxassislik
barcha dictionary qiymatlarini chiqarishga misol:
for x in d:
print(d[x])
Natija:
Zohidjon
27
Amaliy matematika
values() metodidan
foydalanib ham dictionaryning qiymatlari
metodidan foydalanib esa uning kalitlari olinadi.
Python komandasi
keys()
Natija
print(d.values())
dict_values(['Zohidjon', 27, 'Amaliy mate
matika'])
print(d.keys())
dict_keys(['ism', 'yosh', 'mutaxassislik'
])
Dictionaryning ham kalitlari ham qiymatlarini olish uchun items()
metodidan foydalaniladi.
Python komandasi
Natija
print(d.items())
dict_items([('ism', 'Zohidjon'), ('yosh',
27), ('mutaxassislik', 'Amaliy matematika
')])
Biror kalit dictionaryda bor yo’qligini tekshiriash
Python komandasi
Natija
print('yosh' in d)
True
print('tug_yil'
in False
d)
Dictionaryning uzunligi len() built-in funksiyasi yordamida olinadi
Python komandasi
print(len(d))
Natija
3
Dictionaryga element qo’shish
Dictionaryga yangi element qo’shish uchun yangi indeks qo’yiladi va unga
qiymat beriladi.
Python komandasi
Natija
d['ish_joyi'] = 'Samarqand
davlat universiteti'
print(d)
{'ism': 'Zohidjon', 'yosh': 27, 'm
utaxassislik': 'Amaliy matematika'
, 'ish_joyi': 'Samarqand davlat un
iversiteti'}
Elementlarni olib tashlash
pop() metodi dictionarydan ma’lum indeksdagi elementni olib tashlaydi.
Python komandasi
d.pop('ish_joyi')
print(d)
Natija
{'ism': 'Zohidjon',
'mutaxassislik':
matematika'}
'yosh': 27,
'Amaliy
popitem() metodi oxirgi kiritilgan qiymatni o’chiradi
Python komandasi
d.popitem()
print(d)
Natija
{'ism': 'Zohidjon', 'yosh': 27}
del (delete) kalit so’zi yordamida dictionaryning biror elementini yoki butunlay
o’chirish mumkin
Python komandasi
Natija
d = { 'ism': 'Zohidjon',
{'ism': 'Zohidjon', 'mutaxassislik
'yosh':
27, ': 'Amaliy matematika'}
'mutaxassislik':
'Amaliy
matematika'}
del d['yosh']
print(d)
d = { 'ism': 'Zohidjon',
NameError: name 'd' is not defined
'yosh':
27,
'mutaxassislik':
'Amaliy
matematika'}
del d
print(d)
clear() metodi dictionaryni butunlay tozalaydi lekin o’chirmaydi
Python komandasi
Natija
d = { 'ism': 'Zohidjon',
{}
'yosh':
27,
'mutaxassislik':
'Amaliy
matematika'}
d.clear()
print(d)
Dictionarydan nusxa olish
Dictionarydan dict2 = dict1 o’zlashtirish operatori bilan nusxa
ololmaymiz sababi dict2 faqatgina dict1 ga namuna bo’lib qoladi va dict1 ga
o’zgartirish kiritilsa avtomatik ravishda dict2 da ham bu o’zgarish sodir bo’ladi.
Nusxa olishning bir nechta yo’llari mavjud bo’lib ulardan biri copy()
metodi.
Python komandasi
Natija
d = { 'ism': 'Zohidjon',
{'ism': 'Zohidjon', 'yosh': 27, 'm
'yosh':
27, utaxassislik': 'Amaliy matematika'
'mutaxassislik':
'Amaliy }
matematika'}
d1 = d.copy()
print(d1)
Nested Dictionary
Dictionaryning ichida bir nechta dictionarylar bo’lishi mumkin
meningOilam = {
"farzand1" : {
"ism" : "Salim",
"tug_yil" : 2004
},
"farzand2" : {
"ism" : "Sanjar",
"tug_yil" : 2007
},
"farzand3" : {
"ism" : "Ravshan",
"tug_yil" : 2011
}
}
print(meningOilam)
Natija:
{'farzand1': {'ism': 'Salim', 'tug_yil': 2004}, 'farzand2':
{'ism': 'Sanjar', 'tug_yil': 2007}, 'farzand3': {'ism':
'Ravshan', 'tug_yil': 2011}}
Dictionryning yana ba’zi metodlari
Python komandasi
Namuna
Ta’rif
Belgilangan kalitli ba
belgilangan qiymatli di
ctironary hosil qiladi
fromkeys()
tpl = (1,2,3,4)
val = 10
d1 = dict.fromkeys(d,val
)
print(d1)
Natija:
{1: 10, 2: 10, 3: 10, 4:
10}
get()
d = {'bir': 1, 'ikki': 2
, 'uch': 3}
print(d.get('uch'))
Natija:
3
d = {'bir': 1, 'ikki': 2
, 'uch': 3}
d.setdefault('turt')
print(d)
Natija:
{'bir': 1, 'ikki': 2, 'u
ch': 3, 'turt': None}
Biror kalitga mos kelu
vchi qiymatni qaytarad
i
d = {'bir': 1, 'ikki': 2
, 'uch': 3}
d.update({'ikki': 10})
d.update({'turt': 4})
print(d)
Natija:
{'bir': 1, 'ikki': 10, '
uch': 3, 'turt': 4}
Biror kalitga mos kelu
vchi qiymatni o’zgartir
adi yoki yangi kalit va
qiymat qo’shadi.
setdefault()
update()
Dictionaryni kiritish quyidagicha bo’ladi:
Biror kalitga mos kelu
vchi qiymatni qaytarad
i Agar bunday kalit bo
’lmasa, shun kalitni o’r
natadi
n = int(input())
d = {}
for i in range(n):
key, value = map(int, input().split())
d[key] = value
for key in d:
print(key, d[key])
Kiritish
Chiqarish
5
1 10
1 20
2 30
2 40
3 50
1 20
2 40
3 50
Izoh: Dictionary kalitlari takrorlanmaydi.