Sortingx HOW TO

Sortingx是linjing-lab开发的排序工具箱,支持多种排序算法和关键字排序,具有内存优化和高性能特点。本文介绍了Sortingx的基础用法、关键字函数、Operator模块函数、升序降序控制以及排序稳定性,帮助读者掌握如何在Python中进行高效排序。
摘要由CSDN通过智能技术生成

Sortingx HOW TO

Python 列表有内置的 list.sort() 方法来原地排序列表元素,Python 同样发布了扩充了可迭代数据类型的方法 sorted()sortingxlinjing-lab 基于 6 种主流的排序函数研发的一款排序工具箱,拥有高速地多关键字排序与内存优化的核心设计。

Sortingx 基础

实现一个简单的升序排序非常简单,只需要下载 sortingx,并导入该包的排序模块即可:

>>> pip install sortingx
>>> import sortingx as six

在下载完成 sortingx 之后,以 bubble 函数为例来展示它的用法:

>>> six.bubble([5, 2, 3, 1, 4])
[1, 2, 3, 4, 5]

在v1.1.0与v1.1.1中,排序一组数据会返回 None,原因在于这两个版本只允许了列表类型数据的传入,并且与 list.sort() 方法对齐的:

>>> data = [5, 2, 3, 1, 4]
>>> six.bubble(data) # v1.1.0 & v1.1.1
None
>>> print(data)
[1, 2, 3, 4, 5]

在v1.1.2及以后,由于增加数据类型转换函数,sortingx 系列可以支持更多地可迭代数据类型,比如下面这个例子:

>>> six.bubble({
   1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})
[1, 2, 3, 4, 5]

v1.2.0相较于v1.1.2与v1.1.3来说,它优化了生成函数的内核,对于字符串这种可迭代数据类型做出了统一的处理,算法的健壮性得到了很好地保证。v1.1.2与v1.1.3 对于基于字符串的多关键字参数排序的健壮性不是很好,尽管停机速度比较块,但没有与 core 函数达到100%的协同。在v1.2.1中,生成函数相较于v1.2.0中更加轻量级,core函数被替代为内置的比较规则。v1.2.2支持更多可迭代数据类型,例如rangezipdict_keysdict_valuesdict_items等。

关键字函数

sortingx 同样具有关键字参数,用于指定在进行比较之前要对每个列表元素调用的函数(或其他可调用的函数)。
例如,这里是不区分大小写的字符串比较:

>>> six.bubble("This is a test string from LinJing".split(), key=str.lower)
['a', 'from', 'is', 'LinJing', 'string', 'test', 'This'
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DeeGLMath

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值