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

السؤال

نشر

لدي مصفوفة على الشكل :

months=['January','February','March','April','May','June','July','August','September','October','November','December']

واريد تحويلها لتظهر على الشكل :

months = {1:'January', 2:'February',....}

قمت باستخدام enumerate()  لكنها لم تفلح معي رغم اني اعرف انها يمكنها ان تفعل هذا فما الحل؟

Recommended Posts

  • 0
نشر

يمكن ان تقوم فقط باستخدام الدالة enumerate() بشكل خاطئ، لو انك تريد استخدامها يمكنك تجربة هذا الكود:

months =['January','February','March','April','May','June','July','August','September','October','November','December']

d_months = {}

for i, month in enumerate(months):
    d_months[i+1] = month

print(d_months)

يجب ان يظهر الخرج بالشكل التالي:

{1: 'January', 2: 'February', 3: 'March', 4: 'April', 5: 'May', 6: 'June', 7: 'July', 8: 'August', 9: 'September', 10: 'October', 11: 'November', 12: 'December'}

لاحظ اننا استخدمنا i+1 وذلك لاننا نبدأ من المكان 0 ونريد ان نضم اخر شهر لدينا كذلك، لذا فقيمة i+1 =12 وهو عدد الشهور المراد ضمها.

  • 0
نشر

تستخدم enumerate عندما تريد معرفة ال index لكل عنصر من العناصر
فهي تحول كل عنصر في المصفوفة من x الى (index, x)
في مثالك:

months =['January','February','March','April','May','June','July','August','September','October','November','December']

print (list(enumerate(months))) // نطبع الناتج بعد تحويله لقائمة

يكون الخرج

[(0, 'January'), (1, 'February'), (2, 'March'), (3, 'April'), (4, 'May'), (5, 'June'), (6, 'July'), (7, 'August'), (8, 'September'), (9, 'October'), (10, 'November'), (11, 'December')]

وهو غير بنية القاموس التي تريدها

  • 0
نشر

يمكنك استعمال هذا الكود لا يتطلب الدالة enumerate() 

months_list = ['January','February','March','April','May','June','July','August','September','October','November','December']

months = {}

for n in range(1, len(months_list)):
    months[n] = months_list[n]
    
print(months)

 

  • 0
نشر

إضافة للإجابة التي قدمها أحمد يمكنك القيام بذلك كالتالي:

months=['January','February','March','April','May','June','July','August','September','October','November','December']
def Convert(lst):
	res_dct = {lst[i]: i+1 for i in range(0, len(lst))}
	return res_dct
print(Convert(months))
# {'January': 1, 'February': 2, 'March': 3, 'April': 4, 'May': 5, 'June': 6, 'July': 7, 'August': 8, 'September': 9, 'October': 10, 'November': 11, 'December': 12}

.أو من خلال الدالة zip:

months=['January','February','March','April','May','June','July','August','September','October','November','December']
def Convert(l1):
	d1=zip(l1,[ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12])
	return dict(d1)
print(Convert(months))
# {'January': 1, 'February': 2, 'March': 3, 'April': 4, 'May': 5, 'June': 6, 'July': 7, 'August': 8, 'September': 9, 'October': 10, 'November': 11, 'December': 12}

أو zip_longest:

from itertools import zip_longest
months=['January','February','March','April','May','June','July','August','September','October','November','December']
def Convert(l1):
	d1=zip_longest(l1,[ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12])
	return dict(d1)
print(Convert(months))
"""
{'January': 1, 'February': 2, 'March': 3, 'April': 4, 'May': 5, 'June': 6, 'July': 7, 'August': 8, 'September': 9, 'October': 10, 'November': 11, 'December': 12}
"""

 

  • 0
نشر

بسيط وعملي

months=['January','February','March','April','May','June','July','August','September','October','November','December']

months= {q+1: months[q] for q in range(len(months))}

print(months)


# {1: 'January', 2: 'February', 3: 'March', 4: 'April', 5: 'May', 6: 'June', 7: 'July', 8: 'August', 9: 'September', 10: 'October', 11: 'November', 12: 'December'}

 

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...