Python 反向查询集/列表,然后切片
对于标记为重复的人:这不是因为我有一套2个特定的目标,按照特定的顺序制定。在另一个问题中,它只需要反转,这稍微简单一点。感谢您抽出时间阅读。 我有一个Django queryset,用更简单的术语来说,它似乎是列表的扩展(如果我错了,请纠正我) 我需要:Python 反向查询集/列表,然后切片,python,django,Python,Django,对于标记为重复的人:这不是因为我有一套2个特定的目标,按照特定的顺序制定。在另一个问题中,它只需要反转,这稍微简单一点。感谢您抽出时间阅读。 我有一个Django queryset,用更简单的术语来说,它似乎是列表的扩展(如果我错了,请纠正我) 我需要: 反转查询集或列表,然后 切分名单 我是以以下形式进行的: 反向返回(querySet)[:20] 然而,由于某种原因,我现在得到了以下错误: “'reversed'对象不可下标” 我很容易做到: 返回查询集[:20:-1] 但这会导致列表先被切
反向返回(querySet)[:20]
然而,由于某种原因,我现在得到了以下错误:
“'reversed'对象不可下标”
我很容易做到:
返回查询集[:20:-1]
但这会导致列表先被切片,然后再向后排序
因此,我正在寻找下一个最好的黑客方式来实现这一点的过程中
但是当我找到它的时候,我想知道你最好的方法是什么?这是因为,在大多数情况下,Django querysets似乎就是这样,
reversed
不会生成列表,而是生成迭代器:
>>> reversed([1,2,3])
<list_reverseiterator object at 0x7f3ba766cc50>
但这将(在访问项之前从迭代器创建一个列表):
这是因为,在大多数情况下,Django QuerySet似乎就是这样,
reversed
不会生成列表,而是生成迭代器:
>>> reversed([1,2,3])
<list_reverseiterator object at 0x7f3ba766cc50>
但这将(在访问项之前从迭代器创建一个列表):
Queryset.reverse()
querySet.reverse()
querySet.reverse()[:20]
应该可以
>>> list(reversed([1,2,3]))[0]
3