不可变排序集集合的实现

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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用无循环和乘法的递归调用查找值   java字符串大小冲突   在一组Java文件对象中查找唯一的超级目录   没有Eclipse控制台输出窗口(Java)?   java这怎么等于105而不是15?   java Adempiere列调出,用于不处理从(代码)选项导入和创建行的字段   java tomcat、2个webapps、2个log4js,但这两个应用都记录到一个文件中   lambda理解Java谓词   HotspotFX上的Java EOF问题   java google应用程序引擎:如何向连接/断开通道“ping”添加信息?   java如何使用VTDXML获取一个元素的所有名称空间声明?   java如何使用drawLine()获得一条线以随机方向拍摄?   java transactionManager应该使用哪个SessionFactory?   java在安卓上播放声音   在Mac上使用JBDC对SQL Server进行java Windows身份验证   java基本列表和字符串[]   java NamedParameterJdbcTemplate从中选择*   扩展上的java Android可扩展列表视图   使用ApacheAxis2的java SOAP附件