在Python里面,当数组里面有多个字典类型的数据,需要排序时该怎么操作呢?
比如数组格式是"'场景1_2025-05-20 10:51:00''(以下划线分隔),我们想以时间(time字段)从大到小排序,可以使用sort()和sorted()函数,直接看下面的代码示例:
sort_demo.py
# -*- coding: UTF-8 -*-
"""
@Time : 2022/4/9 17:51
@Auth : rs
"""
# 数据示例
a = [
{'time': '场景1_2025-05-20 10:51:00'},
{'time': '爱场景_2021-05-21 9:55:00'},
{'time': '场景3_2009-05-20 10:55:00'},
{'time': '场景2_2022-05-20 10:52:00'}
]
print(f"{a}")
# 方法1: sorted()函数
a_sorted = sorted(a, key=lambda x: x['time'].split("_")[-1], reverse=True)
print(f"{a_sorted}")
# 方法2: sort()函数
a.sort(key=lambda x: (x['time'].split("_")[-1]), reverse=True)
print(f"{a}")
输出结果:
[{'time': '场景1_2025-05-20 10:51:00'}, {'time': '爱场景_2021-05-21 9:55:00'}, {'time': '场景3_2009-05-20 10:55:00'}, {'time': '场景2_2022-05-20 10:52:00'}]
[{'time': '场景1_2025-05-20 10:51:00'}, {'time': '场景2_2022-05-20 10:52:00'}, {'time': '爱场景_2021-05-21 9:55:00'}, {'time': '场景3_2009-05-20 10:55:00'}]
[{'time': '场景1_2025-05-20 10:51:00'}, {'time': '场景2_2022-05-20 10:52:00'}, {'time': '爱场景_2021-05-21 9:55:00'}, {'time': '场景3_2009-05-20 10:55:00'}]