اذهب إلى المحتوى
  • 0

كيف أدمج القواميس في بايثون؟

Blackhacker

السؤال

أحتاج إلى دمج القواميس التالية:

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}

فما هي أسرع طريقة في لغة بايثون لفعل ذلك؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

هنالك عدّة طرق في لغة بايثون لدمج القواميس وبما أنك ذكرت السرعة فأسرع طريقة للدمج هي عبر استخدام منشئ 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
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...