我有一个循环:
total = 0
for s in sums:
total += s[0]
其中sums
是数据库中的对象列表,由Django检索:
sums = Source_types.objects.values_list('source_sum')
我想将此代码移到单行生成器中。
答案 0 :(得分:5)
将sum()
function与generator expression:
total = sum(s[0] for s in sums)
但是,可以使用Django ORM告诉数据库使用aggregation进行求和:
from django.db.models import Sum
total = Source_types.objects.aggregate(Sum('source_sum'))