问题的开头是Custom sort python
我想用这个字母进行特殊排序
alphabet = u'aáàAâÂbBcCçÇdDeéEfFgGğĞhHiİîÎíīıIjJkKlLmMnNóoOöÖpPqQrRsSşŞtTuUûúÛüÜvVwWxXyYzZ
[aáàAâ] 这组角色应具有相同的优先级。在早期的帖子中,@ happydave建议使用(alphabet.index(c)/ 2),
应该将列表中的每对相邻字符映射到 同样优先。
但在我的情况下,我没有一对角色?例如:aáàAâ,eéE,uUûúÛ,óoO,iİîÎíī。
在我看来,简单的方法是添加一个项目,每个列表只包含配对的字符,但我不知道如何实现它。
[['word1', <Element tag at b719a4cc>], ['word2', <Element tag at b719a6cc>]]
带有一个添加项目的列表列表
[['word1_', 'word1', <Element tag at b719a4cc>], ['word2_', 'word2', <Element tag at b719a6cc>]]
谢谢
答案 0 :(得分:4)
工作太多了。 Set your locale,然后是key=locale.strxfrm
。
永远不要排序UTF-8字符;始终先解码为unicode
。
答案 1 :(得分:4)
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
参数