Wenn die Daten als gespeicherten Strings-Sie sagen, sie sind nicht, obwohl es sieht aus wie sie sind: Sie Parser s‘dateutil verwenden könnte:
>>> from dateutil.parser import parse
>>> from pprint import pprint
>>> bd = ['February 6, 1976','January 13, 1996','January 1, 1983']
>>> bd = [parse(i) for i in bd]
>>> pprint(bd)
[datetime.datetime(1976, 2, 6, 0, 0),
datetime.datetime(1996, 1, 13, 0, 0),
datetime.datetime(1983, 1, 1, 0, 0)]
>>> bd.sort(key = lambda d: (d.month, d.day)) # from sth's answer
>>> pprint(bd)
[datetime.datetime(1983, 1, 1, 0, 0),
datetime.datetime(1996, 1, 13, 0, 0),
datetime.datetime(1976, 2, 6, 0, 0)]
Wenn Sie Ihre Reisedaten in verschiedenen Formaten sind, können Sie einen Schuss Fuzzy geben Parsen:
>>> bd = [parse(i,fuzzy=True) for i in bd] # replace line 4 above with this line
BTW: Ich nehme an, dass diese Liste datetime Objekte (wie im ersten Teil der Frage erwähnt) gemeint ist, und keine Zeichenfolgen (wie im Code-Snippet gezeigt). –
Ja, tut mir leid. Ich habe das Beispiel geändert, um zu zeigen, was ich vorhatte. :) –