以下是一个示例代码,根据降序排列的日期时间字段选择前n个不重复的日期:
import datetime
def select_top_n_unique_dates(data, n):
unique_dates = set()
selected_dates = []
# 将日期时间字段按降序排列
sorted_dates = sorted(data, reverse=True)
for date in sorted_dates:
# 提取日期部分
date = date.date()
# 如果日期不在已选择的日期集合中,将其添加到结果集合中
if date not in unique_dates:
selected_dates.append(date)
unique_dates.add(date)
# 如果已选择的日期数量达到n,则结束循环
if len(selected_dates) == n:
break
return selected_dates
# 示例数据
data = [
datetime.datetime(2022, 1, 1, 10, 0),
datetime.datetime(2022, 1, 2, 8, 0),
datetime.datetime(2022, 1, 1, 15, 0),
datetime.datetime(2022, 1, 3, 12, 0),
datetime.datetime(2022, 1, 2, 18, 0),
datetime.datetime(2022, 1, 4, 9, 0),
datetime.datetime(2022, 1, 3, 16, 0),
]
# 选择前3个不重复的日期
top_3_dates = select_top_n_unique_dates(data, 3)
print(top_3_dates)
输出结果为:
[datetime.date(2022, 1, 4), datetime.date(2022, 1, 3), datetime.date(2022, 1, 2)]
注意,示例代码假设输入数据为一个包含日期时间字段的列表,我们首先将日期时间字段按降序排列。然后,我们使用一个集合unique_dates
来记录已选择的日期,确保不会选择重复的日期。最后,我们将选择的日期存储在列表selected_dates
中,并返回结果。