我有一個這樣的名單:排序列表,但保持組與前綴一起
a = ['1', '3', '02', 'WF2', 'WF5', 'WF01']
,我想排序是這樣的:
a = ['1', '02', '3', 'WF01', 'WF2', 'WF5']
使用這樣的事情:
def sortby(id):
if 'WF' not in id and id.isdigit():
return int(id)
elif 'WF' in id.upper():
return float('inf')
a.sort(key=sortby)
我可以對沒有'WF'前綴的整數進行排序,但我不知道如何排序以'WF'爲前綴的整數。
我是否需要使用雙重排序,即再次排序並僅對具有前綴'WF'的排序進行排序並將-Inf分配給沒有'WF'前綴的所有其他條目? 有什麼想法?
編輯:
def sortby(id):
if 'WF' not in id.upper():
return int(id)
return float('inf')
def sortby2(id):
if 'WF' not in id.upper():
return float('-inf')
return int(id.replace('WF', ''))
a.sort(key=sortby)
a.sort(key=sortby2)
,但它不是真正的好...
可能[在Python中排序列表]的副本(https://stackoverflow.com/questions/5491913/sorting-list-in-python) – user1767754
@ user1767754這不是,閱讀問題。我想維護兩個團體...... – tim