我有一个带有 score
和 quizzes_done
的 Django 模型。我想计算分数和 quizzes_done 的百分位数。为此,我需要创建两个排序列表。对于第一个,我这样做:
s_recs = MyRecord.objects.all().order_by('score')
score_list = [r.score for r in s_recs]
我可以执行相同的操作以获得排序的 quiz_list
或者我可以使用 python 排序。我想知道哪个更快。
使用我们上面得到的s_recs
并做
quizzes_list = [r.quizzes_done for r in s_recs]
quizzes_list.sort()
或
q_recs = MyRecord.objects.all().order_by('quizzes_done')
quizzes_list = [r.quizzes_done for r in q_recs]
最佳答案
这是一个小函数,您可以将它们都传递给时间:
def timedcall(fn, *args):
"Call function with args; return the time in seconds and result."
t0 = time.clock()
result = fn(*args)
t1 = time.clock()
return t1-t0, result
这将返回时间和您调用的函数返回的任何结果。我想您会发现,除非您对数以千计的记录进行排序,否则差别不大,但我很想听听结果。
关于python - 哪个更快 : using django database order_by or list sort?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17799240/