gpt4 book ai didi

python/django list.reverse() 和 reversed(list)

转载 作者:太空狗 更新时间:2023-10-30 00:28:34 25 4
gpt4 key购买 nike

我今天在我的 Django 控制台中尝试了这个,我得到了两个不同的结果。我认为 list.reverse() 会反转列表(即第一个对象变成最后一个,依此类推)[1]。然而,情况似乎并非如此。

>>> from django.db.models import Q
>>> q1 = Q(result=1)
>>> q2 = Q(result=-1)
>>> q3 = q1 | q2
>>> form = UserData.objects.filter(user=user).filter(coins__gt=0).filter(q3).order_by('-modified', '-placed').values_list('result', flat=True)[:10]
>>> form
Out[14]: [-1, -1, -1, -1, -1, 1, -1, 1, -1, -1]
>>> form.reverse()
Out[15]: [1, 1, 1, 1, 1, 1, 1, -1, -1, -1]
>>> form_bw = []
>>> for f in reversed(form):
... form_bw.append(f)
...
>>> form_bw
Out[18]: [-1, -1, 1, -1, 1, -1, -1, -1, -1, -1]

我做错了什么?显然我想要的是form_bw

[1] http://docs.python.org/tutorial/datastructures.html

最佳答案

当你做的时候

querysert.order_by('-modified', '-placed').reverse()

其实就是

querysert.order_by('modified', 'placed')

因此,如果结果出乎意料,只需在 Python 中反转

list(reversed(values_list))

或者您必须检查 reverse 带给查询集的排序逻辑。

关于python/django list.reverse() 和 reversed(list),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10395134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com