【发布时间】:2012-01-19 01:52:03
【问题描述】:
简化,我想做这样的事情:
({'publication': obj.pub_name, 'views': obj.views, } for obj = analyze_publication(p) for p in Publication.objects.all())
当然,这是行不通的。
现在,我正在使用:
({'publication': obj.pub_name, 'views': obj.views, } for obj in (analyze_publication(p) for p in Publication.objects.all()))
我不知道第二个代码段是如何完成的,还是有其他语法,或者效率不高等。我才 2 周进入 Python。
【问题讨论】:
-
请问您的第二个样品有什么问题?它在 Python 中是正确的并产生你想要的结果?!
-
@gecco:没问题 x__x,只是完全没有经验。在我未经训练的眼睛里,第二个看起来像循环内循环......如果那些是偶数循环的话。我只是想知道这是否是一种明显低效的方式等等。
-
我明白了……实际上是有趣的挑战。除了在循环中使用单独的函数构造 dict 之外,我没有看到其他解决方案:
(toDict(analyze_publication(p)) for p in Publication.objects.all())
标签: python syntax generator-expression