python中的复杂句
我不明白下面这句话在python中的意思python中的复杂句,python,for-loop,if-statement,Python,For Loop,If Statement,我不明白下面这句话在python中的意思 if all(x not in z for x in y): ... 原文是 if (all(dimQn not in cntx.qnameDims for dimQn in (cntx.qnameDims.keys() - roleURIdims.keys()))): ... 你能告诉我上面句子的逻辑关系吗?“如果y中的每个值都不在z” x不在z中表示x在y中将生成一系列布尔值,指
if all(x not in z
for x in y):
...
原文是
if (all(dimQn not in cntx.qnameDims
for dimQn in (cntx.qnameDims.keys() - roleURIdims.keys()))):
...
你能告诉我上面句子的逻辑关系吗?“如果y
中的每个值都不在z
”
x不在z中表示x在y中
将生成一系列布尔值,指示y
的每个值是否在z
(True
如果值不在z
,False
如果是)。然后,all()
检查要求序列的所有值都是True
,在这种情况下,这意味着所有元素都不在z
中
其功能等同于以下代码:
for x in y:
if x in z:
break
else:
# ...
说y和z的交集是空的是一种复杂的方式。更糟糕的是,在本例中,对于某些集合
w
,它检查z-w
和z
的交集(即z-w
)是否为空,这只有在z==w
时才是真的。如果set(cntx.qnameDims)==set(roleURIdims),则只需编写。