下面是一个示例代码,演示如何按日期和值筛选数组:
import datetime
def filter_array_by_date_and_value(arr, start_date, end_date, min_value, max_value):
filtered_arr = []
for item in arr:
if start_date <= item['date'] <= end_date and min_value <= item['value'] <= max_value:
filtered_arr.append(item)
return filtered_arr
# 示例数据
data = [
{'date': datetime.date(2021, 1, 1), 'value': 10},
{'date': datetime.date(2021, 1, 2), 'value': 15},
{'date': datetime.date(2021, 1, 3), 'value': 20},
{'date': datetime.date(2021, 1, 4), 'value': 25},
{'date': datetime.date(2021, 1, 5), 'value': 30},
]
# 按日期范围为2021年1月2日到2021年1月4日,值范围为15到25进行筛选
filtered_data = filter_array_by_date_and_value(data, datetime.date(2021, 1, 2), datetime.date(2021, 1, 4), 15, 25)
# 打印筛选结果
for item in filtered_data:
print(item)
输出:
{'date': datetime.date(2021, 1, 2), 'value': 15}
{'date': datetime.date(2021, 1, 3), 'value': 20}
{'date': datetime.date(2021, 1, 4), 'value': 25}
这个示例中,filter_array_by_date_and_value
函数接受一个数组 arr
,以及开始日期 start_date
、结束日期 end_date
、最小值 min_value
和最大值 max_value
作为参数。函数遍历数组中的每个项,并根据日期和值的范围进行筛选,将符合条件的项添加到新的数组 filtered_arr
中,最后返回该数组。
通过调用 filter_array_by_date_and_value
函数,我们可以按照指定的日期和值范围对数组进行筛选。在示例中,我们筛选了日期在2021年1月2日到2021年1月4日之间,值在15到25之间的项,并将结果打印出来。
上一篇:按日期和值排序
下一篇:按日期和状态统计不连续数据的数量