【Python】对key或values是datetime类型或时间字符串的字典dict排序

简介: 本文提供了针对字典中key为时间字符串或datetime类型时进行排序的解决方案,包括将时间字符串转换为datetime对象排序和直接对datetime类型的key排序的方法。

1 key是时间字符串类型

1.1 问题

当字典的key是时间字符串类型,如下

time_dict = {‘2021-05-18’: 119,
‘2021-06-05’: 119,
‘2020-12-10’: 116,
‘2021-04-19’: 110,
‘2020-12-04’: 108,
‘2021-04-13’: 106,
‘2020-12-08’: 106,
‘2020-09-12’: 103,
‘2021-05-14’: 101,
‘2021-05-08’: 100,
‘2021-01-09’: 99,
‘2020-12-09’: 99,
‘2021-06-25’: 99,
‘2021-05-28’: 99}

想要实现,根据key进行排序。

1.2 解决办法

({k: v 
  for k, v in sorted(
      time_dict.items(),
      key=lambda x: time.datetime.strptime(x[0], '%Y-%m-%d')
      )
})
AI 代码解读

输出

{‘2020-01-01’: 7,
‘2020-01-02’: 13,
‘2020-01-03’: 6,
‘2020-01-04’: 6,
‘2020-01-05’: 11,
‘2020-01-06’: 8,
‘2020-01-07’: 16,
‘2020-01-08’: 15,
‘2020-01-09’: 21,
‘2020-01-10’: 28,
‘2020-01-11’: 15,
‘2020-01-12’: 17,
‘2020-01-13’: 10,
‘2020-01-14’: 15,
‘2020-01-15’: 7}

2 key是datetime类型

2.1 问题

字典的key是datetime类型的Timestamp,想要对其字典中的时间排序

time_dict = {Timestamp(‘2021-05-18 00:00:00’): 119,
Timestamp(‘2021-06-05 00:00:00’): 119,
Timestamp(‘2020-12-10 00:00:00’): 116,
Timestamp(‘2021-04-19 00:00:00’): 110,
Timestamp(‘2020-12-04 00:00:00’): 108,
Timestamp(‘2020-12-08 00:00:00’): 106,
Timestamp(‘2021-04-13 00:00:00’): 106,
Timestamp(‘2020-09-12 00:00:00’): 103,
Timestamp(‘2021-05-14 00:00:00’): 101,
Timestamp(‘2021-05-08 00:00:00’): 100,
Timestamp(‘2021-05-28 00:00:00’): 99,
Timestamp(‘2021-06-25 00:00:00’): 99,
Timestamp(‘2020-12-09 00:00:00’): 99,
Timestamp(‘2021-01-09 00:00:00’): 99,
Timestamp(‘2021-04-09 00:00:00’): 98,
Timestamp(‘2020-11-06 00:00:00’): 98}

2.2 解决方案

sorted(time_dict.items(),key=lambda x:x[0])
AI 代码解读

输出

[(Timestamp(‘2020-01-01 00:00:00’), 7),
(Timestamp(‘2020-01-02 00:00:00’), 13),
(Timestamp(‘2020-01-03 00:00:00’), 6),
(Timestamp(‘2020-01-04 00:00:00’), 6),
(Timestamp(‘2020-01-05 00:00:00’), 11),
(Timestamp(‘2020-01-06 00:00:00’), 8),
(Timestamp(‘2020-01-07 00:00:00’), 16),
(Timestamp(‘2020-01-08 00:00:00’), 15),
(Timestamp(‘2020-01-09 00:00:00’), 21),
(Timestamp(‘2020-01-10 00:00:00’), 28),
(Timestamp(‘2020-01-11 00:00:00’), 15),
(Timestamp(‘2020-01-12 00:00:00’), 17),
(Timestamp(‘2020-01-13 00:00:00’), 10),
(Timestamp(‘2020-01-14 00:00:00’), 15),
(Timestamp(‘2020-01-15 00:00:00’), 7)]

相关文章
[oeasy]python075_什么是_动态类型_静态类型_强类型_弱类型_编译_运行
本文探讨了编程语言中的动态类型与静态类型、强类型与弱类型的概念。通过实例分析,如Python允许变量类型动态变化(如`age`从整型变为字符串),而C语言一旦声明变量类型则不可更改,体现了动态与静态类型的差异。此外,文章还对比了强类型(如Python,不允许隐式类型转换)和弱类型(如JavaScript,支持自动类型转换)的特点。最后总结指出,Python属于动态类型、强类型语言,对初学者友好但需注意类型混淆,并预告下期内容及提供学习资源链接。
46 21
[oeasy]python076_int这个词怎么来的_[词根溯源]整数类型_int_integer_touch
本文探讨了“int”一词的起源及其与整数类型的关联。通过词根溯源,揭示“int”来源于“integer”,意为“完整的数”,与零碎的分数相对。同时分析了相关词汇如“tact”(接触)、“touch”(触摸)及衍生词,如“tangential”(切线的)、“intagible”(无形的)和“integral”(完整的、不可或缺的)。文章还结合编程语言特性,解释了Python作为动态类型、强类型语言的特点,并总结了整型变量的概念与意义。最后预告了后续内容,提供了学习资源链接。
34 11
python字符串类型及操作
本文主要讲解字符串类型的表示、操作符、处理函数、处理方法及格式化。内容涵盖字符串的定义、表示方法(单双引号、三引号)、索引与切片、特殊字符转义、常见操作符(如+、*、in等)、处理函数(如len()、str()、chr()等)、处理方法(如.lower()、.split()等)以及格式化方式(如.format())。通过实例代码详细介绍了字符串的各种用法和技巧,帮助读者全面掌握字符串操作。
python字符串类型及操作
Python3 自定义排序详解:方法与示例
Python的排序功能强大且灵活,主要通过`sorted()`函数和列表的`sort()`方法实现。两者均支持`key`参数自定义排序规则。本文详细介绍了基础排序、按字符串长度或元组元素排序、降序排序、多条件排序及使用`lambda`表达式和`functools.cmp_to_key`进行复杂排序。通过示例展示了如何对简单数据类型、字典、类对象及复杂数据结构(如列车信息)进行排序。掌握这些技巧可以显著提升数据处理能力,为编程提供更强大的支持。
59 10
|
4月前
|
在 Python 中,如何将日期时间类型转换为字符串?
在 Python 中,如何将日期时间类型转换为字符串?
178 64
|
2月前
|
深入理解 Python 的 eval() 函数与空全局字典 {}
`eval()` 函数在 Python 中能将字符串解析为代码并执行,但伴随安全风险,尤其在处理不受信任的输入时。传递空全局字典 {} 可限制其访问内置对象,但仍存隐患。建议通过限制函数和变量、使用沙箱环境、避免复杂表达式、验证输入等提高安全性。更推荐使用 `ast.literal_eval()`、自定义解析器或 JSON 解析等替代方案,以确保代码安全性和可靠性。
73 2
[oeasy]python061_如何接收输入_input函数_字符串_str_容器_ 输入输出
本文介绍了Python中如何使用`input()`函数接收用户输入。`input()`函数可以从标准输入流获取字符串,并将其赋值给变量。通过键盘输入的值可以实时赋予变量,实现动态输入。为了更好地理解其用法,文中通过实例演示了如何接收用户输入并存储在变量中,还介绍了`input()`函数的参数`prompt`,用于提供输入提示信息。最后总结了`input()`函数的核心功能及其应用场景。更多内容可参考蓝桥、GitHub和Gitee上的相关教程。
36 0
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
132 8
Python 中别再用 ‘+‘ 拼接字符串了!
通过选择合适的字符串拼接方法,可以显著提升 Python 代码的效率和可读性。在实际开发中,根据具体需求和场景选择最佳的方法,避免不必要的性能损失。
78 5
|
3月前
|
使用Python计算字符串的SHA-256散列值
使用Python计算字符串的SHA-256散列值
98 7

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等