如何在不创建列表的情况下将其添加到python中

如何在不创建列表的情况下将其添加到python中,python,python-3.x,django,list,loops,Python,Python 3.x,Django,List,Loops,我有以下django的观点来计算问卷的平均分数 @login_required def statistics(request, slug=False): qn = get_object_or_404(Questionnaire, slug=slug) questions = Question.objects.filter(questionnaire=qn).count() qs = Question.objects.filter(questionnaire=qn)

我有以下django的观点来计算问卷的平均分数

@login_required
def statistics(request, slug=False):
    qn = get_object_or_404(Questionnaire, slug=slug)
    questions = Question.objects.filter(questionnaire=qn).count()
    qs = Question.objects.filter(questionnaire=qn)
    responses = Response.objects.filter(question__in=qs, user=request.user).count()
    if questions == 0 or responses == 0 or not questions <= responses:
        return render(request, "questionnaire/stats.html")
    out = {}
    for q in qs:
        response = Response.objects.filter(question=q, user=request.user).order_by("session_datetime").first()
        out[q.category] = {}
        time = response.session_datetime
        time_string = time.strftime("%d/%m/%Y")
        out[q.category][time_string] = []
        responses_in_time = Response.objects.filter(question=q, user=request.user, session_datetime__gte=time,
                                                    session_datetime__lt=time + datetime.timedelta(hours=24))
        for res in responses_in_time:
            out[q.category][time_string] += [res.value]
    print(out)
    for category in out.keys():
        print("outcat"+ str(out[category]))
        for time in out[category].keys():
            out[category][time] = sum(out[category][time])/len(out[category][time])
    print(out)
    return render(request, "questionnaire/stats.html", context={"questionnaire": qn, "stats_json": json.dumps(out)})
@需要登录\u
def统计信息(请求,slug=False):
qn=获取对象或404(调查问卷,slug=slug)
questions=Question.objects.filter(问卷=qn.count)()
qs=Question.objects.filter(问卷=qn)
responses=Response.objects.filter(question\uu in=qs,user=request.user).count()

如果问题==0或回答==0或不是问题好的,所以我不知道为什么我只能在我发布后才想到答案,但这是工作代码。通过两次循环,一次创建dict,一次填充dict,我解决了这个问题

@login_required
def statistics(request, slug=False):
    qn = get_object_or_404(Questionnaire, slug=slug)
    questions = Question.objects.filter(questionnaire=qn).count()
    qs = Question.objects.filter(questionnaire=qn)
    responses = Response.objects.filter(question__in=qs, user=request.user).count()
    if questions == 0 or responses == 0 or not questions <= responses:
        return render(request, "questionnaire/stats.html")
    out = {}
    response = Response.objects.filter(question=qs.first(), user=request.user).order_by("session_datetime").first()
    time = response.session_datetime
    time_string = time.strftime("%d/%m/%Y")
    for q in qs:
        out[q.category] = {}
        out[q.category][time_string] = []
    for q in qs:
        responses_in_time = Response.objects.filter(question=q, user=request.user, session_datetime__gte=time,
                                                    session_datetime__lt=time + datetime.timedelta(hours=24))
        for res in responses_in_time:
            out[q.category][time_string] += [res.value]
    print(out)
    for category in out.keys():
        print("outcat"+ str(out[category]))
        for time in out[category].keys():
            out[category][time] = sum(out[category][time])/len(out[category][time])
    print(out)
    return render(request, "questionnaire/stats.html", context={"questionnaire": qn, "stats_json": json.dumps(out)})
@需要登录\u
def统计信息(请求,slug=False):
qn=获取对象或404(调查问卷,slug=slug)
questions=Question.objects.filter(问卷=qn.count)()
qs=Question.objects.filter(问卷=qn)
responses=Response.objects.filter(question\uu in=qs,user=request.user).count()
如果问题==0或回答==0或不是问题