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

السؤال

نشر

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

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


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

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


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

Recommended Posts

  • 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)}

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...