【发布时间】:2016-01-15 22:23:05
【问题描述】:
我有一本时间和计数字典。我需要对字典进行排序,使其按时间升序排列。我需要帮助来做一些有用的事情。现在我正在放弃 AM/PM 以消除复杂性,但我知道我在那里遇到了问题,因为我正在丢失信息。
打电话
sorted(myDict, key = bytime_key)
与
def bytime_key(input):
shorter_input = re.match(r'^(.*) \w\w$', input).group(1)
time = datetime.strptime(shorter_input, '%m/%d/%Y %H:%M:%S')
return(time)
很好,只是它实际上并没有改变顺序,所以我在这里遗漏了一些基本的东西。
字典示例
myDict = {'1/15/2016 10:41:00 AM': 11, '1/15/2016 10:43:00 AM': 4,
'1/15/2016 10:22:00 AM': 46, '1/15/2016 10:30:00 AM': 15,
'1/15/2016 10:59:00 AM': 34, '1/15/2016 12:06:00 PM': 12,
'1/15/2016 11:42:00 AM': 11, '1/15/2016 12:22:00 PM': 1,
'1/15/2016 12:18:00 PM': 5, '1/15/2016 10:52:00 AM': 6}
【问题讨论】:
-
什么顺序?
dict没有任何顺序,sorted返回一个list并且不会就地修改输入。见How to sort OrderedDict虽然
标签: python python-2.7 sorteddictionary