[英]Organizing a list of alpha-numeric strings
我有一組帶有索引的代碼:
alpha_numeric_set = {
"ASN 111",
"ASN 125",
"ASP 105",
"ASP 97",
"GLN 130",
"GLN 66",
"GLY 107",
"ILE 100",
"ILE 112",
"ILE 98",
"LEU 129",
"LEU 131",
"LEU 99",
"LYS 127",
"PHE 103",
"PHE 153",
"PRO 110",
"PRO 128",
"PRO 96",
"SER 109",
"THR 90",
"TRP 68",
"TYR 126",
"TYR 64",
"VAL 106",
"VAL 115",
"VAL 132",
"VAL 95 "
}
我希望能夠按時間順序按索引號和按字母順序對代碼名稱進行排序。 我已經設法得到了我想要的一半,(即,使用sorted(alpha_numeric_set)
使代碼按字母順序排序)但我不知道如何對代碼和索引號進行排序。
我想將 output 設置為
ASP 97
ASP 105
GLN 66
GLN 130
etc, etc
而不是:
ASP 105
ASP 97
GLN 130
GLN 66
etc, etc
我嘗試使用.split()
分解每個字符串,然后重新加入每個字符串,但這會將索引與錯誤的代碼配對。
您可以執行以下操作:
def alpha_numeric_key(e):
s, t = e.split()
return s, int(t)
result = sorted(alpha_numeric_set, key=alpha_numeric_key)
print(result)
Output
['ASN 111', 'ASN 125', 'ASP 97', 'ASP 105', 'GLN 66', 'GLN 130', 'GLY 107', 'ILE 98', 'ILE 100', 'ILE 112', 'LEU 99', 'LEU 129', 'LEU 131', 'LYS 127', 'PHE 103', 'PHE 153', 'PRO 96', 'PRO 110', 'PRO 128', 'SER 109', 'THR 90', 'TRP 68', 'TYR 64', 'TYR 126', 'VAL 95 ', 'VAL 106', 'VAL 115', 'VAL 132']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.