我正在寻找一套单一的操作来完成以下两种情况。有没有办法做这个python?
案例1:
a = set([1,2])
和b = set([1,2,3])
我想要一个结果[1,2]
,这是一个简单的交集。现在set(a)
可能为空,并且在空集上与任何其他集合执行交集会导致空集。
案例2:
a = set([])
和b = set([1,2,3]) => set([1,2,3])
即设置b
如何通过一组操作实现案例1和案例2。
答案 0 :(得分:3)
如果你想要的是“如果a
非空,请给我交集;否则只需给我b
”,然后你想要的是:
result = (a&b) if a else b
“我不想使用if
条件来检查其值”作为一项要求没有多大意义。这就是if
的用途:根据某些条件改变行为。
答案 1 :(得分:1)
使用and
和or
,这将短路以产生所需的结果:
>>> a = {1,2}
>>> b = {1,2,3}
>>> a and a&b or b
{1, 2}
>>> a = {}
>>> b = {1,2,3}
>>> a and a&b or b
{1, 2, 3}