对一组对象施加总顺序的数据结构

ordering的Python项目详细描述


对象集合上impose a total order的数据结构。

依赖关系

ordering需要python 3.6+。 如果类型提示被删除,它可能在早期版本中也可以工作。

用法

排序由排序对象表示。 顺序可能不同于对象之间的通常顺序,甚至不同于通常不可比较的对象之间的顺序。

>>>fromorderingimportOrdering>>>order=Ordering([2,0,1])

然后,我们可以比较顺序中的对象,以检查第一个对象是否在顺序中的第二个对象之前。

>>>order.compare(0,1)# 1 after 0True>>>order.compare(0,2)# 2 before 0False
<>我们的排序是可变的,我们可以在任何一端添加元素,或者在现有元素之前或之后添加元素。

>>>order.insert_end(3)# Add 3 on the end>>>order.compare(1,3)# 3 after 1True>>>order.insert_after(0,4)# Insert 4 immediately after 0>>>order.compare(0,4)# 4 after 0True>>>order.compare(1,4)# 4 before 1False

订单是iterable的,按顺序产生它们的项目。

>>>list(order)[2,0,4,1,3]

并且可以用作排序函数中的键,以便根据该顺序进行排序。

>>>sorted(range(3),key=order)[2,0,1]

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

推荐PyPI第三方库


热门话题
servlets Java EE+GlassFish:如果用户在其他地方登录,则强制用户注销   java在不更改源代码的情况下添加钩子   安卓 Java TextView Onclick()返回表达式错误   java Excel文件未使用Apache存储内部内存   java getRowCount()和getSelectedColumn()不起作用   无法在java中生成视图绑定。util。Android Gradle插件2.1的NoTouchElementException   Java中的类型转换运算符百分比计算为零   主java中的调用方法   java在Javasound中播放多个示例   java如何知道webDriver成功打开URL   java jmock,每次调用时返回新对象   eclipse使用Java在Selenium WebDriver中生成可执行文件   macos捆绑Java OS X应用程序默认为MacRoman编码   java我应该把我的休息网关变成一个图书馆吗?   java Eclipse插件:查找包含子字符串的行号无效   Java IOException:在Linux上发送UDP数据包时没有可用的缓冲区空间   java无法解析jaxbxjc2中的名称“xjc:globalJavaType”。2.52.罐子   java是否有HibernateAPI来检查是否创建了数据库?