• 0

كيف أعيد ترتيب قائمة بطريقة لا تراعي حالة الحروف في بايثون؟

لدي قائمة تشبه القائمة التالية:

alist = ['Ahmed', 'abdallah']

وأريد ترتيبها دون اعتبار لحالة الأحرف ولتصبح كالتالي بعد الترتيب:

alist = ['abdallah','Ahmed']

فما الطريقة الصحيحة لفعل ذلك في بايثون؟ حيث أنني جربت استخدام دوال sorted() و alist.sort() لكنني أحصل على نتيجة عكس ما كنت أريده.

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


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

يوجد عدة طرق لفعل ذلك في بايثون وتختلف الطرق بين إصدارين 2 و3 للبايثون بسبب أن الإصدار الثالث أصبح يرمّز السلاسل النصية كـ Unicode، فإذا كنت تستخدم الإصدار الثاني للبايثون فيمكنك في هذه الحالة استخدام lambda ودالة lower حتى تتمكن من الفرز بطريقة حالة الحروف غير حساسة كما في المثال التالي:

sorted(lst, key=lambda s: s.lower())

أما في الإصدار الثالث في بايثون فيمكنك استخدام هذه الطريقة:

>>> x = ['Aden', 'abel']
>>> sorted(x, key=str.lower) # Or unicode.lower if all items are unicode
['abel', 'Aden']

 

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


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

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

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

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


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

تسجيل الدخول

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


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