2015-02-04 5 views
0

У меня есть список:макс даты в списке питона

a=[datetime.date(2010,10,20),1,4,datetime.date(2013,10,20)] 

Как вы можете видеть список содержит различные типы элементов. Как я могу получить максимальную дату в списке?

Моя попытка:

from datetime import datetime 
b=datetime.max(a) 
print b 

ответ

5

Во-первых, сохранение даты и целых чисел вместе в том же списке - за исключением того, как промежуточный этап - может быть признаком того, ваша структура данных не подходит. Тем не менее, вы можете легко взять максимум только дат, используя выражение генератора:

>>> import datetime 
>>> a=[datetime.date(2010,10,20),1,4,datetime.date(2013,10,20)] 
>>> max(d for d in a if isinstance(d, datetime.date)) 
datetime.date(2013, 10, 20) 
+0

I» вы пробовали это, но он, похоже, не работает – user3561251

+0

Это не очень специфично, так что вам сложно найти вашу ошибку. – DSM

+0

Nevermind Я понял, спасибо – user3561251

1

Для guidence Find oldest/youngest datetime object in a list

from datetime import datetime 
datetime_list = [ 
    datetime(2009, 10, 12, 10, 10), 
    datetime(2010, 10, 12, 10, 10), 
    datetime(2010, 10, 12, 10, 10), 
    datetime(2015, 2, 12, 10, 10), # future 
    datetime(2016, 2, 12, 10, 10), # future 
] 
oldest = min(datetime_list) 
youngest = max(datetime_list) 

ПРИОР пост имеет фильтр для исключения будущих событий

Смежные вопросы