paid_students=[]
for students in enrollments:
if students['days_to_cancel']==None or students['days_to_cancel']>7:
paid_students.append(students)
print len(paid_students)
1640
的len(enrollments)
的價值也1640
。爲什麼所有行都會附加到paid_students
list
後面,即使註冊中有很多行具有寬範圍的['days_to_cancel']
值。
的入學
實例數據{u'account_key': u'448',
u'cancel_date': u'2014-11-10',
u'days_to_cancel': u'5',
u'is_canceled': u'True',
u'is_udacity': u'True',
u'join_date': u'2014-11-05',
u'status': u'canceled'}
{u'account_key': u'448',
u'cancel_date': u'2015-01-27',
u'days_to_cancel': u'0',
u'is_canceled': u'True',
u'is_udacity': u'True',
u'join_date': u'2015-01-27',
u'status': u'canceled'}
來源,Udacity
檢查代碼中的「> 7」是否正確? –
@AshKetchum是在問題中詢問'days_to_cancel'必須大於7. –
您正將* strings *與一個整數進行比較。在Python 2中,'u''> 7'總是如此,因爲數字總是在其他對象類型之前排序。將該值轉換爲一個整數* first *。 –