تطبيقات
الأجزاء المنتمية إلى الكل
أو الاختصارات إلى الكلمة التامة:
نريد عكس هذه القائمة أيضًا بحيث نستطيع أن نعرف من الصنف كل الحيوانات المتنمية إليه.
نأتي على جميع المفاتيح في القاموس الأول ونضيفها بحسب القيمة التي تقابلها:
class_animal = {}
for animal, clazz in animal_class.items():
if clazz not in class_animal:
class_animal[clazz] = []
class_animal[clazz].append(animal)
class_animal
{'Mammalia': ['Dog', 'Cat', 'Elephant'],
'Reptilia': ['Snake', 'Lizard'],
'Amphibia': ['Frog']}
لاحظ استعمال اسم clazz
بدل class
لأن كلمة class
أصلية في لغة بايثون فلا يجوز استعمالها كمتغير.
سلة المشتريات
نفترض أن لدينا سلة تحتوي على مشتريات العميل (basket
)، ونريد حساب القيمة الإجمالية لها، ولدينا قائمة بأسعار الفواكه. فنعرف الأسعار على أنها قاموس prices
بحيث يشير اسم الفاكهة إلى سعرها (قيمتها المالية).
يجوز تحديث الأسعار هكذا:
أو تحديثها بالإجراء update()
:
{'apple': 15.25, 'banana': 12, 'orange': 15, 'cantaloupe': 40.0}
والآن نفترض أن لدينا قائمة بالفواكه التي يريدها العميل:
نحسب سعر كل فاكهة في السلة بناءً على الأسعار الموجودة في القاموس:
أو تستطيع أن تعدها أولاً ثم تضربها بالسعر:
{'banana': 2, 'apple': 2, 'orange': 1}
ثم تضربها بالسعر:
استعمال الإنشاء المختصر
تقدم معنا الكلام عن الإنشاء المختصر. وسنستعرضه الآن مع القاموس.
هنا مثال لقاموس من الفواكه، نريد ترشيح ما قيمته أقل من 20:
menu = {
'apple': 15,
'banana': 10,
'orange': 5,
'cantaloupe': 40
}
filtered_menu = {k: v for k, v in menu.items() if v < 20}
filtered_menu
{'apple': 15, 'banana': 10, 'orange': 5}
وهذا مثال أكثر تعقيدًا. نطبق خصم 20% فقط على العناصر التي يكون سعرها أعلى من المتوسط، مع الحفاظ على بقية الأسعار كما هي. لاحظ أن التعبير هنا هو تعيين شرطي: value * (1 - discount) if value > avg_price else value
وليس هو قطعة الترشيح (if
)؛ إذ تلك تأتي في نهاية الجملة، بعد قطعة التكرار (for
).