不可变排序集集合的实现
SortedSet的Python项目详细描述
分类集
不可变排序集集合的实现。
您可以直接下载或键入:
$ pip install SortedSet
安装后,您可以输入:
>>> from SortedSet.sorted_set import SortedSet
至于用法,它很简单:
>>> SortedSet(['list_of_integer_data'])
例如
>>> SortedSet([1, 2, 5, 3, 3, 1])
将返回以下内容
SortedSet([1, 2, 3, 5])
分类集操作
接头
您可以使用“+”运算符将两个sortedset相加, 在其中一个集合上调用.union()方法并提供另一个, 或者使用联合运算符“”。
以这两个分类集为例
>>> a = SortedSet([1, 2, 5, 3])
>>> b = SortedSet([2, 4, 6])
我们可以通过运行这些命令中的任何一个来将它们相加
>>> a + b
>>> a.union(b)
>>> a | b
在这三种情况下,结果都是sortedset
SortedSet([1, 2, 3, 4, 5, 6])
差异
调用.difference()方法可以减去两个sortedset 在其中一组上提供另一组,或使用差异 运算符“-”。注意分类数据集的排序很重要。
以我们已经使用过的两个相同的sortedset为例
>>> a = SortedSet([1, 2, 5, 3])
>>> b = SortedSet([2, 4, 6])
我们可以通过运行这两个命令中的一个来减去它们
>>> a - b
>>> a.difference(b)
在这两种情况下,结果都是sortedset
SortedSet([1, 3, 5])
如果我们要切换操作数的顺序
>>> b - a
>>> b.difference(a)
我们会得到完全不同的结果
SortedSet([4, 6])
对称差分
您可以找到只包含在 通过调用.symmetric_difference()方法两个sortedset 在其中一个集合上提供另一个集合,或者使用对称 差分运算符“^”。
>>> a = SortedSet([1, 2, 5, 3])
>>> b = SortedSet([2, 4, 6])
>>> a.symmetric_difference(b)
SortedSet([1, 3, 4, 5, 6])
>>> b ^ a
SortedSet([1, 3, 4, 5, 6])
交叉口
您可以找到包含在 通过调用.intersection()方法两个sortedset 在其中一个集合上提供另一个集合,或者使用交集 运算符“&;”。
>>> a = SortedSet([1, 2, 5, 3])
>>> b = SortedSet([2, 4, 6])
>>> a.intersection(b)
SortedSet([2])
>>> b & a
SortedSet([2])
超集、子集和不相交
也可以检查一个sortedset是否是超集 或者使用.issuperset()和 .issubset()方法或使用运算符“>;=”和“<;=”。
>>> a = SortedSet([1, 2])
>>> b = SortedSet([1, 2, 3])
>>> a.issuperset(b)
False
>>> a >= b
False
>>> a.issubset(b)
True
>>> a <= b
True
你可以发现两个分类集是不相交的,这意味着 通过运行.isdisjoint()方法,它们没有公共成员 在其中一个分拣机上。
>>> a = SortedSet([1, 3])
>>> b = SortedSet([6, 4, 8])
>>> a.isdisjoint(b)
True
>>> a = SortedSet([4, 3])
>>> b = SortedSet([6, 4, 8])
>>> b.isdisjoint(a)
False
其他操作
其他支持的操作有:
长度() 包含() 两个排序集的等式或不等式比较 按索引访问sortedset成员
>>> a = SortedSet([1, 3, 7, 5])
>>> len(a)
4
/>>> a.contains(1)
True
>>> a.contains(31)
False
>>> b = SortedSet([2, 3])
>>> a == b
False
>>> c = SortedSet([3, 1, 5, 7])
>>> a == c
True
>>> a != b
True
>>> a[0]
1
>>> b[1]
3