关于迭代,我有一个相当菜鸟的问题,我似乎无法正确回答。
我有一个表格,其中包含用户完成的每个月度测试的记录,如果他们错过了一个月,那么表格中就没有记录。
我想从表中提取用户历史记录,然后在 12 个月的每个月中为其完成状态设置 Y 或 N。
这是我的代码:
def getSafetyHistory(self, id):
results = []
safety_courses = UserMonthlySafetyCurriculums.objects.filter(users_id=id).order_by('month_assigned')
for i in range(1, 13):
for s in safety_courses:
if s.month_assigned == i:
results.append('Y')
else:
results.append('N')
return results
所以我的理想结果将是一个包含 12 个条目的列表,Y 或 N 即 results = [N,N,Y,N,N,Y,Y,Y,N,N,N,Y]
上面的查询为用户返回了 2 条记录,这是正确的,但在我的迭代中,我不断收到 24 个条目,显然是由于外部和内部循环,但我不确定“pythonic”方式我应该这样做没有大量的嵌套循环。