Si las fechas se almacenan como cadenas, se dice que no son, aunque Parece que están-podría usar analizador dateutil 's:
>>> 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)]
Si las fechas están en diferentes formatos, es posible que dé difusa análisis de un tiro:
>>> bd = [parse(i,fuzzy=True) for i in bd] # replace line 4 above with this line
BTW: Supongo que esa lista está destinada a ser objetos datetime (como se menciona en la primera parte de su pregunta), y no cadenas (como se muestra en el fragmento de código). –
Sí, lo siento. Cambié el ejemplo para reflejar lo que quería hacer. :) –