我需要对django queryset结果进行排序(前五个大值)
我正在按选择排序
def sortTopFive(allPois): # selection sort
res=[]
for i in range(0,4):
large =allPois[i]
for ele in range(i, len(allPois)):
if allPois[ele]['count']>=large['count']:
ele, large = large , ele
else :
continue
res[i]=large
return res
所有的[i]['count']都是整数
我得到的错误是
'int' object is unsubscriptable
这个问题可能太蠢了,我是python新手
为什么不在查询本身中这样做呢
示例
或者
这个代码有很多很多错误。一些显而易见的问题:
交换
ele
和large
实际上对列表没有任何作用,它只是将名称ele
重新绑定到以前的large
上,但是该名称会立即反弹到列表中的下一个元素;res[i]
将给您一个索引器,因为列表是空的;您可能需要执行res.append(i)
。然而,除非你把它作为一个算法学习练习,否则我完全不知道你为什么要这么做。Python有一个非常好的内置
sort()
函数,它的效率比您的代码高很多倍——除此之外,Django的querysets本身还支持直接在数据库中排序,这甚至更好。你知道吗相关问题 更多 >
编程相关推荐