For Python中的循环

For loops in Python

本问题已经有最佳答案,请猛点这里访问。

有人能给我解释一下这句话吗

1
set(o for o in self.intersect if self.past_dict[o] != self.current_dict[o])

从两个python字典中包含的键的计算差异

我对python是个新手,从来没有见过类似于"o for o"的编程语言,也找不到任何参考来理解这意味着什么。

谢谢。


相当于:

1
2
3
4
5
6
a = []
for o in self.intersect:
    if self.pass_dict[o] != self.current_dict[0]:
        a.append(o)

new_value = set(a)

使用生成器:o for o in self.intersect ...表示,循环通过每个元素,并在for循环内应用条件,即if self.pass_dict[o] != self.current_dict[0]并将每个元素返回到一个集合。

重点是,您应该了解什么是python中的列表理解和生成器,还应该浏览类似生成器表达式和列表理解的链接。

正如@alex updated,它会给您一个更新:变量a基本上是在内存中创建的,并返回到set函数。