Dictionary Comprehensions

Lug'at komprehensiyalari dastlab Python 3.0-da yaratilgan, ammo ular keyinchalik Python 2.7-ga qaytarilgan.

Lug'at Komprehensiyalari

Lug'at komprehensiyalari dastlab Python 3.0-da yaratilgan, ammo ular keyinchalik Python 2.7-ga qaytarilgan. Ular qanday ishlashi haqida barcha tafsilotlarni Python Enhancements Taklifi 274 (PEP 274)¹ hujjatidan o'qishingiz mumkin.

Lug'at komprehensiyasining sintaksisi ro'yxat komprehensiyasiga juda o'xshash. Kvadrat qavslar o'rniga, siz qirq qavslarni ishlatasiz. Qavslar ichida, sizda kalit: qiymat ifodasi bo'ladi va uni for aylanishi kuzatadi, bu o'z navbatida qo'shimcha if yoki for bandlari bilan davom etishi mumkin.

Siz lug'at komprehensiyasini quyidagicha yozishingiz mumkin:

>>> {key: value for key, value in enumerate('abcde')}

Natija:

{0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e'}

Ushbu misolda siz har bir kalit va qiymat uchun kalit: qiymat juftligini yaratasiz, bu esa enumerate funksiyasidan qaytariladi. enumerate funksiyasi ma'lumotlar tuzilmasi ustida aylanishi davomida hozirgi hisobni (noldan boshlanadi) va hozirgi elementni qaytaradi.

Siz lug'at komprehensiyalarini ro'yxat komprehensiyalaridan ko'ra kamroq ko'rishingiz mumkin, chunki ro'yxatlar vaqtinchalik ma'lumotlar tuzilmalari sifatida ancha keng tarqalgan. Shuningdek, lug'at komprehensiyasini yaratishda ehtiyot bo'lishingiz kerak, chunki kalitlar hash qilinadigan bo'lishi kerak. Agar ular bunday bo'lmasa, sizga istisno (exception) beriladi.

Lug'at komprehensiyalari shuningdek, filtrlash uchun shartli ifodalarni qo'llab-quvvatlaydi. Buni o'zingiz sinab ko'rishga xush kelibsiz!

Ushbu sahifada

Xato haqida xabar berish