Sie könnten einen benutzerdefinierten Schlüssel für sorted
angeben, der dazu führt, dass Nicht-Ziffernzeichen vor Ziffern angezeigt werden:
>>> x = ["A", "B", "1", "0", "C", "2"]
>>> sorted(x, key = lambda item: (item.isdigit(), item))
['A', 'B', 'C', '0', '1', '2']
>>> max(x, key = lambda item: (item.isdigit(), item))
'2'
Eine allgemeinere Lösung könnte sein, explizit anzugeben, welche Art von Sortierung Sie möchten. So können Sie die Implementierung einfach ändern, wenn Sie Ihre Meinung darüber ändern, was "höchstes" ist.
>>> ordering = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
>>> x = ["A", "B", "1", "0", "C", "2"]
>>> print max(x, key=ordering.index)
2
>>> #Tatsächlich habe ich beschlossen, dass A am höchsten sein sollte!
>>> ordering = "BCDEFGHIJKLMNOPQRSTUVWXYZ0123456789A"
>>> print max(x, key=ordering.index)
A
Dies kann etwas langsamer sein als die erste Lösung, da index
in linearer Zeit ausgeführt wird. Sie könnten jedoch den Kompromiss als sinnvoll erachten, wenn Sie finden, dass er den Code verständlicher macht.