"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إزالة القواميس المكررة في قائمة بايثون؟

كيفية إزالة القواميس المكررة في قائمة بايثون؟

تم النشر بتاريخ 2024-11-08
تصفح:274

How to Eliminate Duplicate Dictionaries in a Python List?

إزالة التكرارات من قائمة القواميس

يمكن أن يكون التكرار في جمع البيانات عائقًا أمام المعالجة الفعالة للبيانات. في برمجة بايثون، تُستخدم قوائم القواميس بشكل شائع لتخزين البيانات الجدولية. ومع ذلك، قد تكون هناك حالات تحتاج فيها إلى إزالة القواميس المكررة من هذه القائمة.

خذ بعين الاعتبار قائمة القواميس التالية:

[
    {'id': 1, 'name': 'john', 'age': 34},
    {'id': 1, 'name': 'john', 'age': 34},
    {'id': 2, 'name': 'hanna', 'age': 30},
]

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

إنشاء قاموس مؤقت باستخدام المعرف كمفتاح

  1. إنشاء قاموس مؤقت باستخدام فهم القائمة، حيث مفتاح كل قاموس هو حقل "المعرف" الخاص به.
  2. تقوم هذه الخطوة بشكل أساسي بتعيين كل قيمة "معرف" فريدة لقاموس محدد.

استخراج قواميس فريدة من القيم

  1. الحصول على قيم القاموس المؤقت باستخدام طريقة القيم().
  2. النتيجة هي قائمة من القواميس الفريدة، مع إزالة التكرارات.

تنفيذ بايثون

إليك كيفية تنفيذ هذا النهج في بايثون:

def remove_duplicates_from_dicts(dict_list):
    dict_id_mapping = {v['id']: v for v in dict_list}
    return list(dict_id_mapping.values())

sample_list = [
    {'id': 1, 'name': 'john', 'age': 34},
    {'id': 1, 'name': 'john', 'age': 34},
    {'id': 2, 'name': 'hanna', 'age': 30},
]
print(remove_duplicates_from_dicts(sample_list))

سينتج عن هذا الرمز الإخراج التالي:

[{'id': 1, 'name': 'john', 'age': 34}, {'id': 2, 'name': 'hanna', 'age': 30}]

من خلال استخدام هذه الإستراتيجية، يمكنك إزالة القواميس المكررة بشكل فعال من القائمة والحصول على قائمة جديدة مع فريدة فقط عناصر.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3