Python 中的 For 循环

O_O*_*O_O 3 python

有人可以向我解释一下这一行吗

set(o for o in self.intersect if self.past_dict[o] != self.current_dict[o])
Run Code Online (Sandbox Code Playgroud)

来自计算两个Python字典中包含的键的差异

我是 Python 新手,从未见过任何类似于“o for o”的编程语言,并且无法找到任何参考来理解这意味着什么。

谢谢。

Nag*_*tri 5

这相当于:

a = []
for o in self.intersect:
    if self.pass_dict[o] != self.current_dict[0]:
        a.append(o)

new_value = set(a)
Run Code Online (Sandbox Code Playgroud)

使用生成器:意味着o for o in self.intersect ... 循环遍历每个元素并应用 for 循环内的条件if self.pass_dict[o] != self.current_dict[0],即将每个元素返回到一个集合。

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

正如 @Alex 更新的那样,这将为您提供更新:该变量a基本上是在内存中创建并返回到函数的set