gpt4 book ai didi

python - 使用 sorted() 函数对带重音的列表进行排序

转载 作者:行者123 更新时间:2023-12-05 06:01:35 24 4
gpt4 key购买 nike

我正在尝试使用 sorted() 函数对字符串列表进行排序。问题是我使用的是(法国)口音。我试过:

import locale
import functools

locale.setlocale(locale.LC_ALL, 'fr_FR')
test=('pêche','pomme')
sortedtest=sorted(test,key=functools.cmp_to_key(locale.strcoll))

但它不起作用(返回“pomme, pêche”而不是“pêche, pomme”)。谁能帮帮我?

最佳答案

我已经为您进行了一些测试。我的意思是作为评论,但它不适合评论,所以我必须将其作为答复发送。

In [1]: import locale 
...: import functools
...:
...: locale.setlocale(locale.LC_ALL, 'fr_FR')
...: test=('pêche','pomme')
...: sorted(test,key=functools.cmp_to_key(locale.strcoll))
Out[1]: ['pêche', 'pomme']

In [2]: import locale
...: import functools
...:
...: locale.setlocale(locale.LC_ALL, 'fr_FR.utf8')
...: test=('pêche','pomme')
...: sorted(test,key=functools.cmp_to_key(locale.strcoll))
Out[2]: ['pêche', 'pomme']

In [3]: import locale
...: import functools
...:
...: locale.setlocale(locale.LC_ALL, 'fr_FR.ISO-8859-1')
...: test=('pêche','pomme')
...: sorted(test,key=functools.cmp_to_key(locale.strcoll))
Out[3]: ['pêche', 'pomme']

In [4]: import locale
...: import functools
...:
...: locale.setlocale(locale.LC_ALL, 'en_GB.ISO-8859-1')
...: test=('pêche','pomme')
...: sorted(test,key=functools.cmp_to_key(locale.strcoll))
Out[4]: ['pêche', 'pomme']

直到现在,我无法通过返回“pomme, pêche”而不是“pêche, pome”来获得结果。我总是按照你想要的顺序得到它。

关于python - 使用 sorted() 函数对带重音的列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67146579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com