【问题标题】:How to correctly sort accented letters in Python?如何在 Python 中正确排序重音字母?
【发布时间】:2018-10-03 07:54:54
【问题描述】:

我无济于事,试图让挪威字母按正确的顺序排序。

import locale
locale.setlocale(locale.LC_ALL,'no_no')
sorted(list('æøå')) # string is already in correct alphabetical order

只为了得到这个:

['å', 'æ', 'ø']

我错过了什么? (使用 Python 3.6.5)

【问题讨论】:

  • 所以,要根据当前语言环境进行排序,考虑到特定于语言的规则(cmp_to_key 是 functools 的辅助函数),请尝试sorted(list, key=cmp_to_key(locale.strcoll))

标签: python sorting locale


【解决方案1】:

我的猜测是 Python 使用 unicode 值来对字符进行排序。

ord('å') # = 229
ord('æ') # = 230
ord('ø') # = 248

所以从这个意义上说,python 正确地对值进行排序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-02
    • 2019-11-03
    • 2018-06-30
    • 2012-01-23
    • 2019-12-11
    • 2020-01-13
    相关资源
    最近更新 更多