小编典典

自定义排序python

python

我有一个问题:这是由ElementTree库形成的列表列表。

   [['word1', <Element tag at b719a4cc>], ['word2', <Element tag at b719a6cc>], ['word3', <Element tag at b719a78c>], ['word4', <Element tag at b719a82c>]]

word1..4可能包含Unicode字符,即(â,ü,ç)。

我想按我的自定义字母对列表列表进行排序。

我知道如何从这里按python中的单词对自定义字母进行排序

我也知道如何从此处http://wiki.python.org/moin/HowTo/Sorting按键排序

问题是我找不到如何应用这两种方法对“列表列表”进行排序的方法。


阅读 221

收藏
2020-12-20

共1个答案

小编典典

您的第一个链接或多或少解决了这个问题。您只需要让lambda函数仅查看列表中的第一项即可:

alphabet = "zyxwvutsrqpomnlkjihgfedcba"

new_list = sorted(inputList, key=lambda word: [alphabet.index(c) for c in word[0]])

如果您要对相当大的列表进行排序,我可能会建议的一种修改是先将字母结构更改为字典,以便索引查找更快:

alphabet_dict = dict([(x, alphabet.index(x)) for x in alphabet)
new_list = sorted(inputList, key=lambda word: [alphabet_dict[c] for c in word[0]])
2020-12-20