对排序和无限迭代器的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
- 初始发布
新版本
对于新版本
- 编辑变更日志部分
- 提交更改
- 让GitHub Actions测试运行
- 创建标签并推送
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 查看哈希值)
关闭
sorted_chain-0.0.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7859c355badff3e0be0e6595e2025fc128ce2e7263168f7197a2ea04bb814052 |
|
MD5 | 58764cddfe781b8b242f5b2b489c22af |
|
BLAKE2b-256 | 1121352d4f9bdf600e837b9e17e2f277f4bdec4d47dc11115f7ac6d40784cd2f |
关闭
sorted_chain-0.0.2-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c79b22425b6e38f1e2e4cf48a08e0b16d1f28d0feaf4843dc04488a01ed00759 |
|
MD5 | 3cdd85993b3de1fdd5f341966751a435 |
|
BLAKE2b-256 | 197d8a009b6f823281db1b0f6210ba764fea074bc5a68238571039383f7a49a5 |