为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

鸿蒙传说 2022-12-20 14:07:27
我有一本字典from datetime import datetimetime_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 对象中获取最大小时数,但它仅在其他一切都保持不变时才有效。当月份和日期随机变化时,情况就不同了。我想我错过了一些日期时间模块功能。我该如何继续呢?
查看完整描述

3 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

使用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


查看完整回答
反对 回复 2022-12-20
?
慕后森

TA贡献1802条经验 获得超5个赞

您可以为此使用排序模块


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


查看完整回答
反对 回复 2022-12-20
?
达令说

TA贡献1821条经验 获得超6个赞

一种可能的解决方案:


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)}


max = max([time_delta_dict[i] for i in time_delta_dict])


v = [k for k in time_delta_dict if time_delta_dict[k] == max]

print(v[0])


查看完整回答
反对 回复 2022-12-20
  • 3 回答
  • 0 关注
  • 186 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号