如何按规则将日期数组元素与时段数组元素配对组合?
实现思路与代码示例
这个需求本质是将日期列表和时段列表按规则配对拼接,核心步骤就是先拆分原始的日期字符串、对时段进行分组,最后将日期与对应时段组拼接成目标格式。我用Python来实现,逻辑很直观:
具体实现代码
# 原始输入数组 date_array = ['2020-03-17,2020-03-19,2020-03-18,2020-03-12'] time_slots = ['11:00', '13:00','15:00', '17:00','19:00', '21:00', '23:00'] # 1. 拆分日期字符串为独立的日期列表 dates = date_array[0].split(',') # 得到: ['2020-03-17', '2020-03-19', '2020-03-18', '2020-03-12'] # 2. 将时段数组每2个元素分为一组,取前3组(对应结果的3个条目) time_groups = [time_slots[i:i+2] for i in range(0, 6, 2)] # 得到: [['11:00','13:00'], ['15:00','17:00'], ['19:00','21:00']] # 3. 配对日期与时段组,拼接成目标格式的字符串 result = [f"{date},{','.join(group)}" for date, group in zip(dates[:3], time_groups)] print(result) # 输出结果正好是你要的:['2020-03-17,11:00,13:00','2020-03-19,15:00,17:00','2020-03-18,19:00,21:00']
关键步骤解释
- 拆分日期:原始日期数组只有一个元素,是逗号分隔的字符串,所以用
split(',')把它拆成单独的日期元素,这样才能逐个和时段组配对。 - 时段分组:用列表推导式配合步长为2的循环,把时段数组按每2个一组拆分——因为你需要每个日期对应两个连续的2小时时段。这里取前6个时段刚好组成3组,和目标结果的条目数匹配。
- 拼接结果:用
zip把前3个日期和3个时段组一一对应,再用f-string把日期与组内的两个时段用逗号拼接成单个字符串,最后收集成结果数组。
如果后续你的日期数量或时段数量有变化,只需要调整对应的切片范围或者分组逻辑就能轻松适配~
内容的提问来源于stack exchange,提问作者Tony Zhao
相关产品推荐
相关产品推荐

