我的问题是,如果我有一个清单
list = [1,2,3,4,5,6,7]
如果我想知道这个列表中的元素数量,是 len(list)或list.count更好的选择? 或者.count只适用于来自model.filter(id =“HI”)的模型的查询.count?
希望我能说清楚。答案 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()将是 快)。