ich eine Liste wie diese haben:Sortierliste in Python aber halten Gruppen mit dem Präfix zusammen
a = ['1', '3', '02', 'WF2', 'WF5', 'WF01']
und ich möchte so sortieren:
a = ['1', '02', '3', 'WF01', 'WF2', 'WF5']
etwas wie folgt verwenden:
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)
Ich kann die ganzen Zahlen ohne 'WF' Präfix sortieren, aber ich weiß nicht, wie man diejenigen mit dem Präfix 'WF' selbstständig sortiert.
Muss ich die doppelte Sortierung verwenden, also erneut sortieren und nur diejenigen mit dem Präfix 'WF' sortieren und allen anderen Einträgen ohne 'WF' Präfix -Inf zuweisen? Irgendeine Idee?
EDIT:
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)
aber es ist nicht wirklich schön ...
Mögliche Duplikat von [Sortierung Liste in Python] (https://stackoverflow.com/questions/5491913/sorting-list-in-python) – user1767754
@ user1767754 Es ist nicht, lesen Sie die Frage. Ich möchte zwei Gruppen verwalten ... – tim