在 python 中具有空集的操作返回空集


b = set([j-i for j in set([1,2,3,4,5]) for i in set() if j-i>=0])
print b

输出:

set()

为什么此表达式返回空集而不是返回set([1,2,3,4,5])或引发错误?

for i in set()迭代

零次,导致空集。

因为您正在迭代零个项目。 展开循环会更清晰:

result = set()
for j in set([1,2,3,4,5]):
    for i in set():   #  <-- there are no i's !
        if j - i >= 0:
            result.add(j - i)

永远无法访问要add result集的代码路径。

相关内容

  • 没有找到相关文章

最新更新