• 0

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

لنفترض أن لدي القائمة التالية:

a = ['hello','world','1','2']


أريد تحويها إلى قاموس b حيث سيكون العنصر الأول في القائمة هو المفتاح والعنصر الثاني هو القيمة وهكذا لبقية العناصر كما في المثال  التالي:

b['hello'] = 'world'
b['1'] = '2'


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

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


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

يمكنك تحويل القائمة إلى قاموس بسهولة وبعدة طرق في لغة بايثون، فيمكنك على سبيل المثال استخدام دوال zip و dict كما في المثال التالي:

b = dict(zip(a[0::2], a[1::2]))


أما في حالة كان حجم a كبير فربما تحتاج إلى القيام بشيء مثل هذا والذي لن ينشئ أية قوائم مؤقتة كما في المثال أعلاه:

from itertools import izip
i = iter(a)
b = dict(izip(i, i))


أما في بايثون 3 فيمكنك استخدام "تفهيم القاموس"، لكن هنالك طريقة أفضل عن طريق استخدام دوال range و len كما في المثال التالي:

b = {a[i]: a[i+1] for i in range(0, len(a), 2)}

 

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


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

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

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

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


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

تسجيل الدخول

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


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