我是 python 编程的初学者,我需要知道这行是什么意思。我知道 python 中 for 循环的基本语法,但是我不知道这一行,我正在寻找一些 python 专业人士来帮助我。我花了很多时间来理解它:(
for prop, value in ((p, v) for p, v in properties if v is not None):
请您参考如下方法:
((p, v) for p, v in properties if v is not None)
这是一个生成器表达式。它产生一个生成器对象,它在每次轮询时从列表 properties 中发出一对 (p,v),跳过 v 为 None 的那些对,直到用完属性。也就是说,它发出每个设置了某个值的属性、值对。 “每次轮询”只是意味着“每次有人请求 next() 对象”
对于 prop,some_collection 中的值:
这会反复向 some_collection 询问它的下一个对象,最好是一对。该对的元素分别分配给值 prop 和 value 并执行循环体。
将它们放在一起,您可以看到我们正在遍历非空属性并对它们采取一些操作(我们不知道是什么操作,因为我们没有循环体)
我建议您首先研究列表理解和字典理解,然后继续理解生成器,因为列表和字典组合在概念上更简单。
