以下是一个示例的代码解决方法:
import numpy as np
def split_decades(start_year, end_year):
decades = np.arange(start_year, end_year+1, 10)
splits = np.linspace(start_year, end_year, num=5)
result = []
for i in range(len(decades)-1):
if splits[i+1] in decades:
result.append((decades[i], decades[i+1]))
else:
result.append((decades[i], splits[i+1]))
return result
start_year = 1990
end_year = 2020
decades = split_decades(start_year, end_year)
print(decades)
这段代码使用了NumPy库来生成一个包含指定起始年份和结束年份的十年间隔的数组。然后,使用linspace
函数生成一个包含四个等分的数组。接下来,通过遍历十年间隔数组,判断每个等分是否在十年间隔中,如果是,则将对应的十年间隔加入结果数组,如果不是,则将对应的等分加入结果数组。
在这个示例中,起始年份为1990,结束年份为2020,结果将打印为[(1990, 2000), (2000, 2010), (2010, 2017.5), (2017.5, 2020)]
。注意,最后一个等分为结束年份,而不是下一个十年间隔的起始年份。