python中的日期时间表示



我有一个包含一些时间戳的文件。我想显示事件频率/小时,没有零填充。我有:

dictionary = {}
for line in my_list:
line = line.strip()
time = datetime.datetime.strptime(line, "%A, %d %B %Y, %I:%M %p").strftime("%H")
if time in dictionary:
dictionary[time] += 1
else:
dictionary[time] = 1
sorted_days = sorted(dictionary.items(), key=lambda dictionary:dictionary[1])
for time in sorted_days:
print("{0};{1}".format(time[0], time[1]))

目前,显示格式为00;32301;21等在00至23的范围内。我想要的是没有前导零的小时:1;21,2;352,等等。我尝试了strftime("%-H"(,它确实删除了第一个0,但当我想按键使用sorted((时,它会引起问题,顺序是0,1,10,等等。我如何以这样一种方式删除0填充而不干扰我尝试";排序";字典(是的,我知道字典无法排序,我指的只是显示格式(?

我想明白了。任何遇到类似问题的人都可能觉得我的答案很有用。我尝试了许多解决方案。可以更改密钥名称:

dictionary[new_key] = dictionary.pop(old_key)

Fuppes先生在评论中提供了另一个可行的解决方案:使用int(hour(作为键。此外,人们可以把钥匙放在一边。我遇到的问题是,一旦0被删除,排序就无法识别其时间。解决此问题需要一个新的列表/数组。对字典(带填充零(进行排序,然后将值推送到一个新数组,然后循环或过滤以删除零。以上任何一个都可以,使小时为整数是最简单的。

最新更新