list()
我在 python 网站上找不到任何参考资料。你能提供一个参考吗?
Django中的一些代码示例:
list(Tag.objects.filter(name__istartswith=q)[:10])
这是什么意思?
list()
创建一个 Python 列表对象。
给定一个可迭代对象,该可迭代对象的所有元素都被复制到结果列表中:
返回一个列表,其项目与iterable的项目相同且顺序相同。
该表达式Tag.objects.filter(name__istartswith=q)[:10]
创建了一个迭代器,它产生 10 个Tag
对象,其名称以q
(不区分大小写的匹配)开头。
这只是创建了查询结果的本地副本,也许这样代码就可以直接索引到列表中,而无需每次都重新发出新的查询。
这在DjangoQuerySet()
文档中有专门的记录:
list()
.QuerySet
通过调用它来强制评估list()
它。例如:entry_list = list(Entry.objects.all())
但是请注意,这可能会产生很大的内存开销,因为 Django 会将列表的每个元素加载到内存中。相反,迭代 a
QuerySet
将利用您的数据库来加载数据并仅在需要时实例化对象。