如何在Python中创建一个以时间值作为键(m:ss)的字典



创建存储时间值(分和秒)的字典的格式是什么?例如,我想创建一个字典来保存跑步者的冲刺时间:mySprints = {"first":4:30,"second":3:13,"third":5:36}等等。时间以什么格式输入字典?提前谢谢你。

我相信有很多方法,但其中一个选择是将时间作为字符串输入:

your_dict = {"first": "4:30","second": "3:13"}

或者您可以使用datetime模块中的time类:

example = datetime.time(0,4,30) # this would be 0 hours, 4 minutes and 30 seconds
your_dict = {"first": datetime.time(0,4,30),"second": datetime.time(0,3,13)} # etc...

您还可以创建一个lambda函数来初始化时间,这样您就不必编写datetime了。每次在字典中的时间(0、分、秒),例如:

time_obj = lambda m, s: datetime.time(0,m,s)
your_dict['third'] = time_obj(5, 36)
print(your_dict['third']) # this would return: 00:05:36

要回答评论中的问题,您可以将timedelta对象添加在一起,例如:

x = datetime.timedelta(minutes=2, seconds=20) # notice the .timedelta this time
y = datetime.timedelta(minutes=1, seconds=10)
print(x+y) # returns: 0:03:30

要排序,您可以使用python sorted()函数对timedelta对象列表进行排序,例如:

x = datetime.timedelta(minutes=2, seconds=20)
y = datetime.timedelta(minutes=1, seconds=10)
z = datetime.timedelta(minutes=0, seconds=50)
times = [x, y, z]
print(times)
# returns: [datetime.timedelta(0, 140), datetime.timedelta(0, 70), datetime.timedelta(0, 50)]
print(sorted(times))
# returns: [datetime.timedelta(0, 50), datetime.timedelta(0, 70), datetime.timedelta(0, 140)]

要在字典中排序,我建议看一下这个stackoverflow问题。

相关内容

  • 没有找到相关文章

最新更新