如何对列表元素进行排序



我需要对列表进行排序:

["3B", "1A", "2T", "4E", "2A", "4A", "1B", "10E"]

["1B", "1A", "2T", "2A", "3B", "4E", "4A", "10E"]

字母取自"BETA">

我尝试使用list sort((函数,但在这种情况下它不起作用。

有可能实现吗?在循环中?

您可以使用自定义key对列表进行排序。首先,你想按字符串中的数字排序,然后(在平局的情况下(按单词"中最后一个字母的位置排序;BETA":

>>> sorted(my_list, key=lambda s: (int(s[:-1]), "BETA".find(s[-1])))
['1B', '1A', '2T', '2A', '3B', '4E', '4A', '10E']

最新更新