2017-07-03 13 views
0

我正在Udacity学习数据科学。我对以下Python代码提供了建议。Python中的函数来检查两个日期之间的差异

我们有一本字典

paid_students = {} 
for enrollment in non_udacity_enrollments: 
    if not enrollment['is_canceled'] or enrollment['days_to_cancel'] > 7 : 
     account_key=enrollment['account_key'] 
     enrollment_date=enrollment['join_date'] 
     paid_students[account_key] = enrollment_date 

然后我们有以下函数,它接受两个日期作为参数

def within_one_week(join_date, engagement_date): 
    time_delta = engagement_date - join_date 
    return time_delta.days < 7 

现在,这个功能显然需要两个日期作为参数。

现在检查下面的代码,我们正在使用上述函数(within_one_week(join_date, engagement_date)),但其中一个参数似乎不是我的日期。

paid_engagement_in_first_week = [] 

for engagement in non_udacity_engagement: 
    student_id = engagement['account_key'] 
    if student_id in paid_students: 
     if within_one_week(paid_students[student_id], engagement['utc_date']): 
      paid_engagement_in_first_week.append(engagement) 

你能告诉我为什么一个参数是paid_students[student_id],这对我来说似乎不是一个约会?

回答

1

paid_students是词典,其中enrollment['account_key']作为键和enrollment['join_date']作为值。

所以,当你做paid_student[student_id]你实际上得到了给定密钥(student_id)的值,这是从enrollment['join_date']获得的日期。

+0

加一 - 既然你打我和它很多新用户永远不知道如何选择正确的答案 – jross

+0

谢谢soo多Lufexlos.Its现在都清除 – Jonelya

+0

嗨@Jonelya,很高兴它帮助。 :)请点击复选标记,考虑[接受答案](https://meta.stackexchange.com/q/5234/179419)。这向更广泛的社区表明,您已经找到了解决方案,并为答复者和您自己提供了一些声誉。 **这一点,没有义务这样做。** – Lafexlos