下面是一个示例代码,用于按日期合并两个列表:
from datetime import datetime
def merge_lists_by_date(list1, list2):
merged_list = []
i, j = 0, 0
while i < len(list1) and j < len(list2):
date1 = datetime.strptime(list1[i]['date'], '%Y-%m-%d')
date2 = datetime.strptime(list2[j]['date'], '%Y-%m-%d')
if date1 < date2:
merged_list.append(list1[i])
i += 1
else:
merged_list.append(list2[j])
j += 1
# 将剩余的元素添加到 merged_list
while i < len(list1):
merged_list.append(list1[i])
i += 1
while j < len(list2):
merged_list.append(list2[j])
j += 1
return merged_list
# 示例输入
list1 = [{'date': '2022-01-01', 'value': 1}, {'date': '2022-01-03', 'value': 3}]
list2 = [{'date': '2022-01-02', 'value': 2}, {'date': '2022-01-04', 'value': 4}]
merged_list = merge_lists_by_date(list1, list2)
print(merged_list)
输出结果:
[{'date': '2022-01-01', 'value': 1}, {'date': '2022-01-02', 'value': 2}, {'date': '2022-01-03', 'value': 3}, {'date': '2022-01-04', 'value': 4}]
在这个示例代码中,我们首先导入了datetime模块,以便处理日期。然后定义了一个merge_lists_by_date函数来合并两个列表。函数中使用了两个指针i和j来追踪两个列表的位置。
在一个while循环中,我们比较了list1[i]和list2[j]中的日期,并将较小的日期添加到merged_list中。然后相应的指针递增。
最后,我们通过两个while循环将剩余的元素添加到merged_list中,以确保将所有元素都合并到结果列表中。
最后,我们调用merge_lists_by_date函数,并打印输出结果。
上一篇:按日期合并JSON数组的结果
下一篇:按日期合并数据帧生成NA