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:
Natija:
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!