含有UTF-8字符列表的排序(sorting of list containing utf-8 ch

2019-09-17 13:56发布

问题一开始就在这里自定义排序蟒蛇

我想这个字母进行排序特

alphabet = u'aáàAâÂbBcCçÇdDeéEfFgGğĞhHiİîÎíīıIjJkKlLmMnNóoOöÖpPqQrRsSşŞtTuUûúÛüÜvVwWxXyYzZ

[AAAAAA] 这组字符应具有相同的优先级 。 在较早的线程,@happydave建议使用(alphabet.index(C)/ 2),

这应该在你的列表中的每对相邻的字符映射到相同的优先级。

但对我来说,我没有对性格的? 例如:AAAAAA,EEE,UUUUU,OOO,IIIIII。

在我看来简单的办法是增加一个项目,只包含配对charachers每个列表,但我不知道如何实现它。

 [['word1', <Element tag at b719a4cc>], ['word2', <Element tag at b719a6cc>]]

列表中有一个添加的项目名单

[['word1_', 'word1', <Element tag at b719a4cc>], ['word2_', 'word2', <Element tag at b719a6cc>]]

Answer 1:

s='aáàAâÂbBcCçÇdDeéEfFgGğĞhHiİîÎíīıIjJkKlLmMnNóoOöÖpPqQrRsSşŞtTuUûúÛüÜvVwWxXyYzZ'
s2='aaaaaabbccccddeeeffgggghhiiiiiiiijjkkllmmnnoooooppqqrrssssttuuuuuuuvvwwxxyyzz'
trans = str.maketrans(s, s2)

def unikey(seq):
    return seq[0].translate(trans)

使用此功能key的参数sorted



Answer 2:

太多的工作。 设置您的区域 ,然后key=locale.strxfrm

永远不要UTF-8字符排序; 总是解码为unicode第一。



文章来源: sorting of list containing utf-8 characters