SORU
8 Temmuz 2009, ÇARŞAMBA


Nasıl alfabetik olarak Python unicode dizeleri sıralama?

Ben demek ki varsayılan olarak bayt değeri, Python türlü z ve aynı derecede komik diğer şeyler sonra gelir. Python alfabetik olarak sıralamak için en iyi yolu nedir?

Bunun için bir kütüphane var mı? Bir şey bulamadım. Tercihen sıralama diline sahip olmalıdır åäö İsveççe z sonra sıralanması gerektiğini, ama ü u, vb göre sıralanmış olması gerektiğini anladığı kadar destek. Unicode desteği böylece oldukça fazla bir gerekliliktir.

Eğer kütüphane varsa, hayır, bunu yapmak için en iyi yolu nedir? Sadece tamsayı değeri mektuptan bir eşleştirme yapmak ve bu tamsayı listesi için dize göster?

CEVAP
8 Temmuz 2009, ÇARŞAMBA


IBM ICU kütüphane (ve çok) daha fazla. Var Python bağlamaları: PyICU.

Güncelleme: YOĞUN bakım ve locale.strcoll sıralama arasındaki temel fark YBÜ strcoll ISO 14651 kullanırken tam Unicode Collation Algorithm kullanmasıdır.

Bu iki algoritma burada kısaca özetlenmiştir arasındaki farklar: http://unicode.org/faq/collation.html#13. Bu nadiren pratikte önemli olan daha egzotik bir özel durumlar vardır.

>>> 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']

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Art Food Kitty - Kelly Eddington

    Art Food Kit

    7 Kasım 2006
  • KarnasCamillo

    KarnasCamill

    24 EKİM 2007
  • Vintendo Power

    Vintendo Pow

    2 Ocak 2007