我需要对列表进行排序:
["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']