跳转到主要内容

对排序和无限迭代器的itertools.chain

项目描述

sorted_chain

itertools.chain 与排序结果。

这是一个简单的函数。然而,最好对其进行测试并处理边缘情况。如果您遇到任何问题或想扩展它,请打开Issue或Pull Request!

安装

您可以从PyPI安装 sorted_chain

pip install sorted_chain

用法

您可以将任何数量的排序值的迭代器传递给 sorted_chain()。然后结果将被排序。

>>> from sorted_chain import sorted_chain, IterableIsNotSorted
>>> list(sorted_chain([1, 3, 5], [2, 4, 6]))
[1, 2, 3, 4, 5, 6]

输入可迭代对象必须是 排序的!否则,您将收到一个 IterableIsNotSorted 异常。

>>> from sorted_chain import IterableIsNotSorted
>>> try:
...     list(sorted_chain([1000, 0]))  # wrong order
... except IterableIsNotSorted:
...     print("error!")
error!

迭代器也可以是 降序的

>>> list(sorted_chain([100, 10, 1], [99, 9, -1], reverse=True))
[100, 99, 10, 9, 1, -1]

输入可以是 生成器。它们的值仅在需要时检索。

>>> large_generator1 = iter(range(1000))
>>> large_generator2 = iter(range(1000))
>>> for value in sorted_chain(large_generator1, large_generator2):
...     if value >= 100:
...         break
>>> next(large_generator1)  # this generator had reached 100
101
>>> next(large_generator2)  # this one yielded 99 and 100, too
101

如果您想使用一个对元素进行排序,您可以按预期这样做

>>> positive = [1, 3, 5]
>>> negative = [-2, -4, -6]
>>> list(sorted_chain(positive, negative, key=lambda x: x*x)) # sort without minus
[1, -2, 3, -4, 5, -6]

变更日志

  • v0.0.2

    • 修正元数据
    • 修正许可证
  • v0.0.1

    • 初始发布

新版本

对于新版本

  1. 编辑变更日志部分
  2. 提交更改
  3. 让GitHub Actions测试运行
  4. 创建标签并推送
git tag v0.0.1
git push origin v0.0.1

项目详情


下载文件

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

源分布

sorted_chain-0.0.2.tar.gz (35.4 kB 查看哈希值)

上传时间

构建分布

sorted_chain-0.0.2-py3-none-any.whl (34.2 kB 查看哈希值)

上传时间 Python 3

由以下支持