首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检索for循环、Python、Django-QuerySet中的'i‘索引

检索for循环、Python、Django-QuerySet中的'i‘索引
EN

Stack Overflow用户
提问于 2014-05-05 06:04:31
回答 2查看 728关注 0票数 0

我在一个查询集中有两个模型对象

代码语言:javascript
复制
x = [<model.object>]
y = [<model.object>]

我需要通过每个集合的脚本来处理每个对象

代码语言:javascript
复制
for i in [x,y]:
    i.attribute_1
    i.attribute_2

但这是行不通的,因为在本例中,'i‘表示的是查询集,而不是对象

代码语言:javascript
复制
for i in [x,y]:
    i[0].attribute_1
    i[0].attribute_2

似乎很累赘

代码语言:javascript
复制
for i in [x[0],y[0]]:
    i.attribute_1
    i.attribute_2

同一问题

代码语言:javascript
复制
for i[0] in [x,y]:
    i.attribute_1
    i.attribute_2

不管用。

有没有比这更好的独处?

代码语言:javascript
复制
for i in [x,y]:
    i = i[0]
    i.attribute_1
    i.attribute_2

?或者更好

代码语言:javascript
复制
z = 0
for i in [x,y]:
    i = i[z]
    i.attribute_1
    i.attribute_2
    z += 1

?谢谢:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-05 06:13:24

我想我有了

代码语言:javascript
复制
for i in [x,y]:
    z = 0
        while z < len(i)
        o = i[z]
        o.attribute_1
        o.attribute_2
        z += 1
票数 0
EN

Stack Overflow用户

发布于 2014-05-15 16:49:35

看起来itertools.chain在这种情况下应用得最好:

代码语言:javascript
复制
for i in itertools.chain(x, y):
    i.attr_1
    i.attr_2

它也可以应用于情况,在这种情况下,您有一个查询集列表,如:

代码语言:javascript
复制
query_sets = [[<model.object>, <model.object>], [<model.object>, <model.object>, <model.object>], ....]
for i in itertools.chain(*query_sets):
    ....
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23465829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档