今天在过需求时,遇到一个小需求,大致内容如下:
1、如列表 a = ['2.12-2.13', 0.449, 68.0, 25.0]
自动改写,形式:
[['2.12', 0.449, 68.0, 25.0],
['2.13', 0.449, 68.0, 25.0]]
分析1:
也就是说列表的第一个元素【2.12-1.13
】,表示一个一个范围,我们生成的列表能够自动补充其范围内的日期
分析2:
如: ['1.27-2.1', 0.449, 77.0, 25.0]
,需要考虑跨月的情况
[['1.27', 0.449, 77.0, 25.0],
['1.28', 0.449, 77.0, 25.0],
['1.29', 0.449, 77.0, 25.0],
['1.30', 0.449, 77.0, 25.0],
['1.31', 0.449, 77.0, 25.0],
['2.1', 0.449, 77.0, 25.0]]
下面将会分享完整的代码,分享之前,大家感兴趣的可以当成一道小题目,自己尝试一下
from datetime import datetime, timedelta
def all_data_range(data):
date_range = data[0]
start_date_str, end_date_str = date_range.split('-')
start_date = datetime.strptime(start_date_str, '%m.%d')
end_date = datetime.strptime(end_date_str, '%m.%d')
delta = end_date - start_date
result = []
for i in range(delta.days + 1):
date = start_date + timedelta(days=i)
date_str = f"{date.month}.{date.day}"
result.append([date_str, data[1], data[2], data[3]])
print(result)
return result
all_data_range(['1.27-2.5', 0.449, 77.0, 25.0])
希望对大家有帮助
致力于办公自动化的小小程序员一枚#
都看到这了,关注+点赞+收藏=不迷路!!
如果你想知道更多关于Python办公自动化的知识各位大佬给个关注吧!