SymPy - 集(Set)

  • 简述

    在数学中,集合是定义明确的不同对象的集合,可以是数字、人、字母表中的字母,甚至是其他集合。Set 也是 Python 中的内置类型之一。SymPy 提供了 sets 模块。它包含不同类型集合的定义,并具有执行集合操作的功能,例如交集、并集等。
    Set 是 SymPy 中任何其他类型集合的基类。请注意,它与 Python 的内置集合数据类型不同。Interval 类表示真实的间隔,它的边界属性返回一个FiniteSet目的。
    
    >>> from sympy import Interval 
    >>> s=Interval(1,10).boundary 
    >>> type(s)
    
    sympy.sets.sets.FiniteSet
    FiniteSet 是离散数字的集合。它可以从任何序列对象(例如列表或字符串)中获取。
    
    >>> from sympy import FiniteSet 
    >>> FiniteSet(range(5))
    
    Output
    $$\lbrace\lbrace0,1,...,4\rbrace\rbrace$$
    
    >>> numbers=[1,3,5,2,8] 
    >>> FiniteSet(*numbers)
    
    Output
    $$\lbrace1,2,3,5,8\rbrace$$
    
    >>> s="HelloWorld" 
    >>> FiniteSet(*s)
    
    Output
    {H,W,d,e,l,o,r}
    请注意,与内置集合一样,SymPy 的集合也是不同对象的集合。
    ConditionSet是一组满足给定条件的元素
    
    >>> from sympy import ConditionSet, Eq, Symbol 
    >>> x=Symbol('x') 
    >>> s=ConditionSet(x, Eq(x**2-2*x,0), Interval(1,10)) >>> s
    
    Output
    $$\lbrace x\mid x\in[1,10]∧x^2 - 2x =0\rbrace$$
    Union是一个复合集。它包括两组中的所有元素。请注意,在两者中都可以找到的元素只会在联合中出现一次。
    
    >>> from sympy import Union 
    >>> l1=[3,1,5,7] 
    >>> l2=[9,7,2,1] 
    >>> a=FiniteSet(*l1) 
    >>> b=FiniteSet(*l2) 
    >>> Union(a,b)
    
    Intersection另一方面,仅包含两者中都存在的那些元素。
    
    >>> from sympy import Intersection 
    >>> Intersection(a,b)
    
    ProductSetobject 表示两个集合中元素的笛卡尔积。
    
    >>> from sympy import ProductSet 
    >>> l1=[1,2] 
    >>> l2=[2,3] 
    >>> a=FiniteSet(*l1) 
    >>> b=FiniteSet(*l2) 
    >>> set(ProductSet(a,b))
    
    Complement(a,b)保留 a 中的元素,排除与 b 集合共有的元素。
    
    >>> from sympy import Complement 
    >>> l1=[3,1,5,7] 
    >>> l2=[9,7,2,1] 
    >>> a=FiniteSet(*l1) 
    >>> b=FiniteSet(*l2) 
    >>> Complement(a,b), Complement(b,a)
    
    SymmetricDifferenceset 只包含两个集合中不常见的元素。
    
    >>> from sympy import SymmetricDifference 
    >>> l1=[3,1,5,7] 
    >>> l2=[9,7,2,1] 
    >>> a=FiniteSet(*l1) 
    >>> b=FiniteSet(*l2) 
    >>> SymmetricDifference(a,b)
    
    Output
    {2,3,5,9}