我需要對串列進行排序:
["3B", "1A", "2T", "4E", "2A", "4A", "1B", "10E"]
到
["1B", "1A", "2T", "2A", "3B", "4E", "4A", "10E"]
采用“BETA”形式的字母
我嘗試使用 list sort() 函式,但在這種情況下它不起作用。
有可能實作嗎?在 for 回圈中?
uj5u.com熱心網友回復:
您可以使用自定義key對串列進行排序。首先,您要按字串中的數字排序,然后(如果出現平局)按單詞“BETA”中最后一個字母的位置排序:
>>> sorted(my_list, key=lambda s: (int(s[:-1]), "BETA".find(s[-1])))
['1B', '1A', '2T', '2A', '3B', '4E', '4A', '10E']
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/441078.html
下一篇:Unit型別的列舉
