我有一个问题:这是由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按键排序
问题是我找不到如何应用这两种方法对“列表列表”进行排序的方法。
您的第一个链接或多或少解决了这个问题。您只需要让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]])