Moatasm Elshahry نشر 16 أغسطس 2021 أرسل تقرير نشر 16 أغسطس 2021 لدي مصفوفة على الشكل : months=['January','February','March','April','May','June','July','August','September','October','November','December'] واريد تحويلها لتظهر على الشكل : months = {1:'January', 2:'February',....} قمت باستخدام enumerate() لكنها لم تفلح معي رغم اني اعرف انها يمكنها ان تفعل هذا فما الحل؟ 1 اقتباس
0 Ahmed Sharshar نشر 16 أغسطس 2021 أرسل تقرير نشر 16 أغسطس 2021 يمكن ان تقوم فقط باستخدام الدالة 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 Hassan Hedr نشر 16 أغسطس 2021 أرسل تقرير نشر 16 أغسطس 2021 تستخدم 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 Hamza Malki نشر 17 أغسطس 2021 أرسل تقرير نشر 17 أغسطس 2021 يمكنك استعمال هذا الكود لا يتطلب الدالة 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 Ali Haidar Ahmad نشر 20 أغسطس 2021 أرسل تقرير نشر 20 أغسطس 2021 إضافة للإجابة التي قدمها أحمد يمكنك القيام بذلك كالتالي: 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 Hamza Malki نشر 21 أغسطس 2021 أرسل تقرير نشر 21 أغسطس 2021 بسيط وعملي 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'} اقتباس
السؤال
Moatasm Elshahry
لدي مصفوفة على الشكل :
واريد تحويلها لتظهر على الشكل :
قمت باستخدام enumerate() لكنها لم تفلح معي رغم اني اعرف انها يمكنها ان تفعل هذا فما الحل؟
5 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.