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

السؤال

نشر

يرتب بايثون السلاسل النصبة حسب قيمة البايت التي تملكها بشكل افتراضي ، أي أن الحرف é يأتي بعد z وهكذا... فما هي أفضل طريقة لترتيب هذه السلاسل النصية في بايثون؟

Recommended Posts

  • 0
نشر

هنالك عدّة طرق يمكنك من خلالها ترتيب سلسلة unicode النصية، لكن حسب رأيي فأفضلها استخدام مكتبة ICU التابعة لـ IBM، والتي تسمى نسختها في بايثون بـ PyICU.
ملاحظة: الفرق الرئيسي بين ICU و دالة locale.strcoll هو أن الأولى تستخدم Unicode Collation Algorithm بينما الثانية تستخدم ISO 14651.
هذا مثال بسيط لاستخدام مكتبة icu (التي يجب أن تُثبتها أولا) لفرز سلسلة نصية معينة:

>>> import icu # pip install PyICU
>>> sorted(['a','b','c','ä'])
['a', 'b', 'c', 'ä']
>>> collator = icu.Collator.createInstance(icu.Locale('de_DE.UTF-8'))
>>> sorted(['a','b','c','ä'], key=collator.getSortKey)
['a', 'ä', 'b', 'c']

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...