在python中使用空集的操作返回null集

时间:2017-05-23 21:51:19

标签: python null set list-comprehension

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])或引发错误?

2 个答案:

答案 0 :(得分:1)

for i in set()被迭代零次,导致空集。

答案 1 :(得分:1)

因为您正在迭代零项。展开循环使其更清晰:

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)

永远无法访问addresult集的代码路径。