gpt4 book ai didi

python - Django 在 100 个对象后停止

转载 作者:太空宇宙 更新时间:2023-11-03 11:30:36 25 4
gpt4 key购买 nike

我做了一个小的 Django 项目,我想将添加的对象相互比较以找到 dublet(我已经使用了 unique_together 元选项,但这并不完全符合我的需要) .

当我启动脚本时,它在 100 次迭代后完成,尽管有大约 60000 个对象。

objects = Django_app.objects.all()

for object_a in objects:
for object_b in objects:
compare( object_a, object_b)

有人可以解释这种行为吗?

解决方案:

objects = list( objects.all() )

谢谢大家!

最佳答案

在遍历列表时,Python 使用指针遍历对象列表。当迭代相同的对象(相同的项目列表)时,Python 会注意使用两个单独的指针。因此,当您执行 objects = list(objects) 时,这会创建一个普通的 Python 对象列表。 objects 的嵌套迭代按预期工作。使用 Django Querysets,行为有些不同。查询集是从数据库中获取的,只有一个指针。将查询集强制放入常规列表是最简单的解决方法。

关于python - Django 在 100 个对象后停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21088055/

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