在 python 中设置操作

Set operations in python

我正在寻找一个集合操作来完成以下两种情况。有没有办法做到这一点 python?

案例 1:
a = set([1,2])b = set([1,2,3])
我想要一个结果 [1,2],这是一个简单的交集。现在 set(a) 可能为空,并且对空集与任何其他集执行交集将导致空集。

案例二:
a = set([])b = set([1,2,3]) => set([1,2,3]) 即设置 b

如何用一套操作实现case 1和case 2

如果你想要的是"if a is non-empty, give me the intersection; otherwise just give me b",那么你想要的是:

result = (a&b) if a else b

"I don't want to use if conditional to check its value" 作为要求没有多大意义。这就是 if 的用途:根据某些条件改变行为。

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