在python中设置操作

时间:2016-05-24 09:10:48

标签: python math set set-intersection

我正在寻找一套单一的操作来完成以下两种情况。有没有办法做这个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。

2 个答案:

答案 0 :(得分:3)

如果你想要的是“如果a非空,请给我交集;否则只需给我b”,然后你想要的是:

result = (a&b) if a else b

“我不想使用if条件来检查其值”作为一项要求没有多大意义。这就是if的用途:根据某些条件改变行为。

答案 1 :(得分:1)

使用andor,这将短路以产生所需的结果:

>>> 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}