我有一个QuerySet,我们称它为qs
,它是由一些与这个问题无关的属性排序的。然后我有一个对象,我们称之为obj
。现在我想知道 obj
在 qs
中的索引,尽可能高效。我知道我可以使用 Python 中的 .index()
或者可能循环通过 qs
将每个对象与 obj
进行比较,但是最好的方法是什么去做这件事?我正在寻找高性能,这是我唯一的标准。
在 Windows 上使用 Python 2.6.2 和 Django 1.0.2。
最佳答案
如果您已经在遍历查询集并且只想知道您当前所在元素的索引,那么紧凑且可能最有效的解决方案是:
for index, item in enumerate(your_queryset):
...
但是,如果你有一个查询集和一个通过一些不相关的方式获得的对象,并且想要了解这个对象在查询集中的位置(如果它甚至存在的话),请不要使用它。
关于python - 获取查询集中元素的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1042596/