我们说我有一堆物品,父亲。所以每个父亲都会有一群孩子。无数的孩子。每1个父亲,有很多孩子。
我想按照孩子的平均年龄对每个父亲进行排序。
由于孩子的数量可以改变,他们的年龄会增加,我不一定要将平均年龄硬编码到父亲模型中。我需要动态提供该值,以某种方式进行缓存,以便在查看100,000名父亲时可以按照平均孩子的年龄进行快速排序。
关于如何有效地做出任何想法?我确信lambda不够快或不实用。
答案 0 :(得分:1)
计算并缓存(硬编码)“平均出生日期”而不是平均年龄并按其排序。它会给你相同的结果,除非父亲得到另一个孩子,否则它不会改变,那么你可以为那个父亲重新计算它。您可以找到平均日期,如下所示:
from datetime import datetime
kids_dobs = ['1/2/1990', '3/4/1993', '5/6/1995']
dates = [datetime.strptime(dob, "%d/%m/%Y") for dob in kids_dobs]
timestamps = [date.timestamp() for date in dates]
avg_timestamp = sum(timestamps) / len(timestamps)
avg_date = datetime.fromtimestamp(avg_timestamp)
print(avg_date.strftime("%d/%m/%Y")) # 02/12/1992
答案 1 :(得分:0)