-4

list()我在 python 网站上找不到任何参考资料。你能提供一个参考吗?

Django中的一些代码示例:

list(Tag.objects.filter(name__istartswith=q)[:10])

这是什么意思?

4

1 回答 1

1

list()创建一个 Python 列表对象。

给定一个可迭代对象,该可迭代对象的所有元素都被复制到结果列表中:

返回一个列表,其项目与iterable的项目相同且顺序相同。

该表达式Tag.objects.filter(name__istartswith=q)[:10]创建了一个迭代器,它产生 10 个Tag对象,其名称以q(不区分大小写的匹配)开头。

这只是创建了查询结果的本地副本,也许这样代码就可以直接索引到列表中,而无需每次都重新发出新的查询。

这在DjangoQuerySet()文档中有专门的记录:

list(). QuerySet通过调用它来强制评估list()它。例如:

entry_list = list(Entry.objects.all())

但是请注意,这可能会产生很大的内存开销,因为 Django 会将列表的每个元素加载到内存中。相反,迭代 aQuerySet将利用您的数据库来加载数据并仅在需要时实例化对象。

于 2013-10-02T17:07:15.183 回答