从FiniteSet中删除元素

时间:2017-03-22 09:28:35

标签: python sympy

当我在sympy处理模块时,我想到了如何从FiniteSet中删除特定元素的问题。像

>>> f = FiniteSet(1, 2, 3, 4)
>>> f
{1, 2, 3, 4}

如果我尝试删除2,我该怎么做呢。

我尝试将其转换为列表并使用remove(),但我无法将list转换回FiniteSet

我没有找到任何能完成任务的功能。我可能会错过一些东西,但我想在这里问一下。

3 个答案:

答案 0 :(得分:3)

使用就地排他性或(对称差异):

In [7]: f = {1, 2, 3, 4}

In [8]: f ^={2}

In [9]: f
Out[9]: {1, 3, 4}

答案 1 :(得分:2)

您可以使用-=运算符

import sympy
a=sympy.FiniteSet(1,2,3,4)
print(a)
a-=sympy.FiniteSet(2)
print(a)

输出:

{1, 2, 3, 4}
{1, 3, 4}

或者您可以随时将其转换回set进行删除。

a=sympy.FiniteSet(1,2,3,4)
a=set(a).remove(2)
a=sympy.FiniteSet(*a)

答案 2 :(得分:1)

只需减去所需的元素:

from sympy import FiniteSet
f = FiniteSet(1, 2, 3, 4)
f -= FiniteSet(2)
print f

输出:{1, 3, 4}