Blackhacker نشر 21 ديسمبر 2015 أرسل تقرير نشر 21 ديسمبر 2015 أحتاج إلى دمج القواميس التالية:d1={1:2,3:4} d2={5:6,7:9} d3={10:8,13:22} لتصبح قاموس واحد كما يظهر في المثال التالي:d4={1:2,3:4,5:6,7:9,10:8,13:22} فما هي أسرع طريقة في لغة بايثون لفعل ذلك؟ اقتباس
0 هشام رزق الله نشر 21 ديسمبر 2015 أرسل تقرير نشر 21 ديسمبر 2015 هنالك عدّة طرق في لغة بايثون لدمج القواميس وبما أنك ذكرت السرعة فأسرع طريقة للدمج هي عبر استخدام منشئ dict ومن ثم استخدام دالة update كما يظهر في المثال التالي:$ python -mtimeit -s'd1={1:2,3:4}; d2={5:6,7:9}; d3={10:8,13:22}' \ 'd4 = dict(d1, **d2); d4.update(d3)' 1000000 loops, best of 3: 1.88 usec per loopأو يمكنك استخدام هذه الطريقة التي استعملنا فيها دالة update مباشرة فهي كما تلاحظ أبطئ قليلا لكنها مقبولة:$ python -mtimeit -s'd1={1:2,3:4}; d2={5:6,7:9}; d3={10:8,13:22}' \ 'd4 = {}' 'for d in (d1, d2, d3): d4.update(d)' 100000 loops, best of 3: 2.67 usec per loopكما يمكنك دمج محتويات القواميس عن طريق استخدام دالة items() مع العامل الحسابي + كما في المثال التالي على الرغم من أنني لا أنصح بهذه الطريقة لأنها الأبطأ:$ python -mtimeit -s'd1={1:2,3:4}; d2={5:6,7:9}; d3={10:8,13:22}' \ 'd4 = dict(d1.items() + d2.items() + d3.items())' 100000 loops, best of 3: 4.93 usec per loop اقتباس
السؤال
Blackhacker
أحتاج إلى دمج القواميس التالية:
لتصبح قاموس واحد كما يظهر في المثال التالي:
فما هي أسرع طريقة في لغة بايثون لفعل ذلك؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.