Jafar Ali نشر 15 مارس 2021 أرسل تقرير نشر 15 مارس 2021 كيف يمكنني ترتيب عناصر المصفوفة ترتيب أبجدي صحيح ؟ أقوم بترتيب أبجدي باستخدام الدلة sort : names = ['Ali', 'ahmad', 'Mohammad', 'malik'] names.sort() print(names) ولكن النتيجة غير متوقعة : # أجد النتيجة ['Ali', 'Mohammad', 'ahmad', 'malik'] # بدلا من #['Ali', 'ahmad', 'malik', 'Mohammad'] ما السبب ؟ 1 اقتباس
0 عزام عبد الحافظ نشر 15 مارس 2021 أرسل تقرير نشر 15 مارس 2021 تستخدم الدلة sort ترتيب ASCIIbetical بدلاً من الترتيب الأبجدي الفعلي لترتيب نصوص المصفوفة ، وهذا يعني أن الكلمات ذات الأحرف الكبيرة تأتي أولًا ، اذا كنت تريد الترتيب الصحيح من غير الاهتمام في حالة الأحرف إن كانت كبيرة ام صغيره عليك أن تستعمل str.lower هكذا : names.sort(key=str.lower) عندها ستجد النتيجة : ['Ali', 'ahmad', 'malik', 'Mohammad'] 1 اقتباس
0 Talaat Magdy نشر 16 مارس 2021 أرسل تقرير نشر 16 مارس 2021 مرحبا يمكنك فعل ذلك بالعديد من الطرق مثلا باستخدام الدالة sort names = ['Ali', 'ahmad', 'Mohammad', 'malik'] names.sort() print(names) هذا الكود صحيح ولكن لان يوجود حروف capital و small تكون اﻷولية للحروف capital . لان ترتيب A هو 065 أما a 097 يمكنك زيارة هذا رابط لمعرفة ذلك http://sticksandstones.kstrom.com/appen.html باستخدام الدالة sort ولكن جعل حروف أما capital أو small names = ['Ali', 'ahmad', 'Mohammad', 'malik'] names.sort(key= str.lower) print(names) # ['ahmad', 'Ali', 'malik', 'Mohammad'] names.sort(key= str.upper) print(names) # ['ahmad', 'Ali', 'malik', 'Mohammad'] sort باستخدام lambda و lower أو upper names = ['Ali', 'ahmad', 'Mohammad', 'malik'] names.sort(key=lambda y: y.lower()) print(names) # ['ahmad', 'Ali', 'malik', 'Mohammad'] names = ['Ali', 'ahmad', 'Mohammad', 'malik'] names.sort(key=lambda y: y.upper()) print(names) # ['ahmad', 'Ali', 'malik', 'Mohammad'] sorted عن طريق lower أو upper names = ['Ali', 'ahmad', 'Mohammad', 'malik'] sorted_list = sorted(names, key=lambda s: s.lower()) print(sorted_list) # ['ahmad', 'Ali', 'malik', 'Mohammad'] sorted_list = sorted(names, key=lambda s: s.upper()) print(sorted_list) # ['ahmad', 'Ali', 'malik', 'Mohammad'] sorted باستخدام casefold يمكنك معرفة المزيد من هنا https://docs.python.org/3/library/stdtypes.html#str.casefold names = ['Ali', 'ahmad', 'Mohammad', 'malik'] sorted_list = sorted(names, key=str.casefold) print(sorted_list) # ['ahmad', 'Ali', 'malik', 'Mohammad'] اقتباس
0 Hasan Dayoub نشر 23 مارس 2021 أرسل تقرير نشر 23 مارس 2021 لأننا نقوم بالتعامل مع أسماء أشخاص, هنالك حيلة يمكننا استخدامها و هي أن نقول بجعل جميع الأحرف الأولى من كل إسم Uppercase و باقي الأحرف Lowercase. names = ['Ali', 'ahmad', 'Mohammad', 'malik'] for i in range(len(names)): names[i] = names[i].capitalize() #هذا التابع يقوم بجعل أول حرف كبير و يجعل باقي الحروف صغيرة names.sort() print(names) اقتباس
السؤال
Jafar Ali
كيف يمكنني ترتيب عناصر المصفوفة ترتيب أبجدي صحيح ؟
أقوم بترتيب أبجدي باستخدام الدلة sort :
ولكن النتيجة غير متوقعة :
ما السبب ؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.