4

我有一个带有scoreand的 Django 模型quizzes_done。我想计算分数和 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]
4

1 回答 1

2

这是一个小函数,您可以将它们都传递给时间:

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

这将返回您调用的函数返回的时间和任何结果。我想你会发现,除非你对上万条记录进行排序,否则差别不大,但我很想听听结果。

于 2013-07-23T00:04:57.700 回答