对一组对象施加总顺序的数据结构
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]