• 0

كيف أبحث في قائمة من القواميس في بايثون؟

لنفترض أن لدي القائمة التالية التي تحتوي على قواميس:

[
{"name": "Tom", "age": 10},
{"name": "Mark", "age": 5},
{"name": "Pam", "age": 7}
]

عندما أبحث عن اسم مثل Pam أريد أن أتمكّن أولا من إيجاد العنصر الذي يحتوي على هذا الاسم ومن ثم أريد الحصول على جميع معلوماته، فكيف أستطيع فعل ذلك في بايثون؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

يمكنك البحث عن مفاتيح قاموس معين داخل قائمة من القواميس بطرق مختلفة، مثلا استخدم التعابير الموّلدة كما في المثال التالي:

>>> dicts = [
...     { "name": "Tom", "age": 10 },
...     { "name": "Mark", "age": 5 },
...     { "name": "Pam", "age": 7 },
...     { "name": "Dick", "age": 12 }
... ]

>>> (item for item in dicts if item["name"] == "Pam").next()
{'age': 7, 'name': 'Pam'}

لقد استخدمنا في هذا المثال حلقة التكرار for للتأكد من جميع العناصر من شرط تساوي قيمة الاسم مع الاسم الذي نبحث عنها ومن ثم يرجع لنا جميع المعلومات المتعلقة بهذا الاسم.
كما يمكنك استخدام دالة filter مع lambda للبحث داخل جميع القواميس الموجودة في القائمة كما في المثال التالي:

people = [
{'name': "Tom", 'age': 10},
{'name': "Mark", 'age': 5},
{'name': "Pam", 'age': 7}
]

filter(lambda person: person['name'] == 'Pam', people)

المصدر

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن