我不确定以下语法中逗号的含义:
a = [1,2,3,5,7,9]
b = [2,3,5,6,7,8]
g = filter(lambda x: x in a, b)
Run Code Online (Sandbox Code Playgroud)
那是否相当于:
if x in a and x in b
Run Code Online (Sandbox Code Playgroud)
因为那就是发生的事情。另外,这个逗号只在 lambda 函数中合法吗?
b是要执行过滤的集合。
filter有两个参数。第一个是函数(可以是 lambda),第二个是要应用该函数的集合。该函数将应用于集合中的每个项目。
所以在这种情况下我们有:
a = [1,2,3,5,7,9]
b = [2,3,5,6,7,8]
Run Code Online (Sandbox Code Playgroud)
和
g = filter(lambda x: x in a, b)
Run Code Online (Sandbox Code Playgroud)
分隔,参数。第一个参数是 lambda 函数,因此只是lambda x: x in a,因此它通过仅返回返回 的项目集合来过滤集合True。因此,对于我们的第一项,我们在 中拥有第一项b,即 2。2 在 中a,因此它将返回True,并且将在filter函数的结果中g。