当前位置: 首页 > 面试题库 >

获取查询集中元素的索引

宋岳
2023-03-14
问题内容

我有一个QuerySet,让我们称之为qs,它是由与该问题无关的某些属性排序的。然后有一个对象,我们称它为obj。现在,我想尽可能 高效
地知道objin中的索引。我知道我可以在Python中使用它,也可以通过将每个对象与进行比较来循环,但是执行此操作的最佳方法是什么?我正在寻找高性能,这是我唯一的标准。qs
__.index()``qs``obj

在Windows上将Python 2.6.2与Django 1.0.2结合使用。


问题答案:

Django中的QuerySet实际上是生成器,而不是列表(有关更多详细信息,请参见QuerySets上的Django文档)。
因此,没有获取元素索引的捷径,而且我认为简单的迭代是实现此目标的最佳方法。

首先,我将以最简单的方式(例如迭代)实现您的要求;如果您确实有性能问题,那么我将使用一些不同的方法,例如使用较少的字段构建查询集,等等。
无论如何,我们的想法是在您绝对知道需要这些技巧时,尽可能晚地保留这些技巧。
更新:
您可能想直接使用一些SQL语句来获取行号(有点谎言。但是,Django的ORM本身不支持该行号,而您必须使用原始SQL查询(请参阅文档)。我认为这可能是最好的选择,但前提是您只有在看到真正的性能问题时才可以这样做。



 类似资料:
  • 我可以在GraphQL查询中获取多个元素吗?我有许多产品列表数据,我想获取,例如,我的组件中的三个产品。我有一个所需的产品ID数组,我可以将其传递给query吗?这是我对一种产品的查询: 但我不认为我可以把它放在一个函数中,然后对三个产品执行三次。

  • 问题内容: 假设我有这个标记: 我有这个jQuery: 单击该子项时,如何获得子项相对于其父项的索引? 例如,当您单击“步骤1”时,应弹出带有“ 0”的。 问题答案: 但是,与其为每个列表项附加一个单击处理程序,不如(在性能方面)更好地使用如下所示: 在jQuery 1.7+中,您应该使用。下面的示例将事件绑定到元素,就像委托事件一样工作:

  • 在火虫中,我有一个与此内容的链接: 如何使用“类名”访问链接(单击它)? 我尝试了以下方法: 但是我得到了错误: 线程“main” org.openqa.selenium中出现异常。InvalidSelectorException:给定的选择器cb_or_somename cb_area_0219无效或不产生WebElement 发生以下错误:InvalidSelectorError:不允许使用复

  • 问题内容: 我有一个int数组,想要获取最小10个(任何n个)元素的索引。我怎样才能做到这一点? 问题答案: 创建一个包含数字和索引的对象,然后创建这些对象的数组,然后执行Array.Sort(arrayset [],比较器)java docs 。然后,您可以从已排序的数组中挑选出前x个项目。 编辑:像这样… [我曾经用它来根据’距离’进行排序

  • 我正在尝试创建一个用户可以在浏览器中存储注释的应用程序。 为了弄清楚用户在文档中创建注释的位置,我正在尝试存储所选文本的xpath和偏移量。 我到处搜索过,似乎有很多从xPath字符串中检索元素的示例,但没有很好的从DOM元素中查找xPath的示例。 以下是我尝试过的: 其中getXPathForElement如下所示: 这段代码给出了一个很长的看起来很奇怪的文本,如下所示:(我认为这不是一个真正

  • 获取查询对象的结果集 // 查询邮箱或密码是否正确 async checkEmailAndPassword(loginData) { // 解构查询对象中的结果 const { dataValues: {id,username,password,email} } = await this.ctx.model.User.findOne({