以下是一个示例代码,用于按时间顺序列出给定范围内的值:
import datetime
def list_values_in_range(start_date, end_date, values):
sorted_values = sorted(values, key=lambda x: x['date'])
result = []
for value in sorted_values:
if start_date <= value['date'] <= end_date:
result.append(value)
return result
values = [
{'date': datetime.datetime(2022, 1, 1), 'value': 10},
{'date': datetime.datetime(2022, 2, 1), 'value': 20},
{'date': datetime.datetime(2022, 3, 1), 'value': 30},
{'date': datetime.datetime(2022, 4, 1), 'value': 40},
{'date': datetime.datetime(2022, 5, 1), 'value': 50}
]
start_date = datetime.datetime(2022, 2, 1)
end_date = datetime.datetime(2022, 4, 1)
result = list_values_in_range(start_date, end_date, values)
print(result)
在此示例中,我们假设有一个包含日期和值的列表。我们定义了一个名为list_values_in_range
的函数,它接受开始日期、结束日期和值列表作为参数。首先,我们使用lambda函数对值列表进行排序,以确保它们按日期顺序排列。然后,我们遍历排序后的值列表,并将在给定范围内的值添加到结果列表中。最后,我们打印出结果。
在这个例子中,我们期望输出为:
[{'date': datetime.datetime(2022, 2, 1, 0, 0), 'value': 20}, {'date': datetime.datetime(2022, 3, 1, 0, 0), 'value': 30}, {'date': datetime.datetime(2022, 4, 1, 0, 0), 'value': 40}]
这是因为我们只想要在2022年2月1日至2022年4月1日之间的值。