跳转到主要内容

安全排序异构集合。

项目描述

https://travis-ci.org/wolever/safesort.svg?branch=master

safesort 就像其名称所表示的那样:保证在 Python 2 和 Python 3 中对任意异构列表进行安全排序

>>> list(sorted(["a", 1, None]))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable types: int() < str()
>>> list(safesort(["a", 1, None))
[None, 1, 'a']

对每个比较尝试三个排序键

  1. 对象: objA > objB

  2. 类型和对象: (type(objA).__mro__, objA) > (type(objB).__mro__, objB)

  3. 类型和标识符: (type(objA).__mro__, id(objA)) > (type(objB).__mro__, id(objB))

这保证了总排序是一致的

  1. 尽可能一致

  2. 普遍合理:类型相似的对象将放在一起

例如

>>> from safesort import safesort
>>> input = ['a', set([]), [], {}, 1, None]
>>> list(safesort(input))
[None, 1, {}, [], set([]), 'a']

安装

safesort 可以使用 Python 2 或 Python 3 通过 pipeasy_install 安装

$ pip install safesort
- OR -
$ easy_install safesort

项目详情


下载文件

下载适合您平台文件的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

safesort-0.2.0.tar.gz (2.5 kB 查看哈希)

上传时间

构建分布

safesort-0.2.0-py2.py3-none-any.whl (4.1 kB 查看哈希值)

上传时间: Python 2 Python 3

由以下支持