在字典中获取最新日期时间的键,其中key = string和value = datetime对象

问题描述 投票:0回答:2

我有字典

from datetime import datetime

time_delta_dict = {'A': datetime.datetime(year=2020, month=6, day=1, hour=11, minute=0), 
                   'B': datetime.datetime(year=2020, month=6, day=1, hour=21, minute=0), 
                   'C': datetime.datetime(year=2020, month=6, day=1, hour=18, minute=0), 
                   'D': datetime.datetime(year=2020, month=6, day=1, hour=15, minute=0)} 

如何返回具有最新日期和时间的密钥?在我的示例中,最新的是键“ B”。我试过在每个datetime对象中获得最大小时数,但是它仅在其他所有条件不变时才起作用。

[当月份和日期随机变化时,情况就不同了。我想我错过了一些datetime模块功能。我该如何进行呢?

python dictionary datetime
2个回答
1
投票

max()函数与key参数一起使用:

import datetime

time_delta_dict = {'A': datetime.datetime(year=2020, month=6, day=1, hour=11, minute=0),
                   'B': datetime.datetime(year=2020, month=6, day=1, hour=21, minute=0),
                   'C': datetime.datetime(year=2020, month=6, day=1, hour=18, minute=0),
                   'D': datetime.datetime(year=2020, month=6, day=1, hour=15, minute=0)}

key_max, value_max = max(time_delta_dict.items(), key=lambda item: item[1])
print(key_max)

输出:

B

0
投票

您可以为此使用sorted模块

from datetime import datetime

time_delta_dict = {'A': datetime(year=2020, month=6, day=1, hour=11, minute=0), 
                   'B': datetime(year=2020, month=6, day=1, hour=21, minute=0), 
                   'C': datetime(year=2020, month=6, day=1, hour=18, minute=0), 
                   'D': datetime(year=2020, month=6, day=1, hour=15, minute=0)} 

key, date =  max(time_delta_dict.items(), key = lambda x: x[1])
print(key)

输出:B

© www.soinside.com 2019 - 2024. All rights reserved.