获得列表大小的“最佳”方式

时间:2018-06-11 05:05:17

标签: django python-3.x

我的问题是,如果我有一个清单

list = [1,2,3,4,5,6,7]

如果我想知道这个列表中的元素数量,是 len(list)或list.count更好的选择? 或者.count只适用于来自model.filter(id =“HI”)的模型的查询.count?

希望我能说清楚。

2 个答案:

答案 0 :(得分:4)

count()返回一个整数,表示与QuerySet匹配的数据库中的对象数,它仅适用于queryset

使用SQL’s SELECT COUNT(*)来处理数据库级别的计数效率更高,这就是count()

的原因

len() python内置函数,返回一个对象的长度(项数),它也可以应用于queryset,但最有效的使用count()

答案 1 :(得分:1)

如果您正在谈论python列表,那么count()len()用于不同目的。 count(el)会查找列表中出现特定元素el的次数。虽然len()会为您提供列表元素的总数。

对于queryset对象,只需检查文档的this part

  

count()调用在幕后执行SELECT COUNT(*),所以你   应始终使用count()而不是将所有记录加载到   Python对象并在结果上调用len()(除非你需要   无论如何将对象加载到内存中,在这种情况下len()将是   快)。