以下是一个示例代码,展示了如何按照日期字符串对对象数组进行分组:
from datetime import datetime
# 定义对象数组
data = [
{'name': 'Alice', 'date': '2022-01-01'},
{'name': 'Bob', 'date': '2022-01-02'},
{'name': 'Charlie', 'date': '2022-01-01'},
{'name': 'Dave', 'date': '2022-01-03'},
{'name': 'Eve', 'date': '2022-01-02'}
]
# 创建一个空字典用于存储分组结果
groups = {}
# 遍历对象数组
for obj in data:
# 提取日期字符串
date_str = obj['date']
# 将日期字符串转换为datetime对象
date = datetime.strptime(date_str, '%Y-%m-%d')
# 以年月日为键创建分组
group_key = date.strftime('%Y-%m-%d')
# 如果分组键不存在,则创建一个空列表
if group_key not in groups:
groups[group_key] = []
# 将对象添加到对应的分组中
groups[group_key].append(obj)
# 打印分组结果
for group_key, group in groups.items():
print(f'Group {group_key}:')
for obj in group:
print(obj)
print()
运行上述代码,会输出以下结果:
Group 2022-01-01:
{'name': 'Alice', 'date': '2022-01-01'}
{'name': 'Charlie', 'date': '2022-01-01'}
Group 2022-01-02:
{'name': 'Bob', 'date': '2022-01-02'}
{'name': 'Eve', 'date': '2022-01-02'}
Group 2022-01-03:
{'name': 'Dave', 'date': '2022-01-03'}
这样,对象数组就按照日期字符串进行了分组。每个分组的键是日期字符串,对应的值是该日期的对象列表。
上一篇:按常见的开放时间将工作日数组分组