跳转到主要内容

使用任意谓词将可迭代对象分割成多个。

项目描述

使用任意谓词将可迭代对象分割成多个。

此软件包包含一个函数:multisplitby.multi_split_by

对于所有列表 valuespredicates,以下条件始终为真

  1. 1 + len(predicates) = len(list(multi_split_by(values, predicates)))

  2. values == itertools.chain.from_iterable(multi_split_by(values, predicates))

单个谓词的正常使用

>>> values = range(4)
>>> predicates = [lambda x: 2 < x]
>>> list(map(list, multi_split_by(values, predicates)))
[[0, 1, 2], [3]]

多个谓词的正常使用

>>> values = range(9)
>>> predicates = [lambda x: 2 < x, lambda x: 4 < x, lambda x: 7 < x]
>>> list(map(list, multi_split_by(values, predicates)))
[[0, 1, 2], [3, 4], [5, 6, 7], [8]]

如果没有给出值,将生成 |predicates| + 1 个生成器,所有生成器都返回空列表。

>>> values = []
>>> predicates = [lambda x: 2 < x, lambda x: 4 < x, lambda x: 7 < x]
>>> list(map(list, multi_split_by(values, predicates)))
[[], [], [], []]

如果没有给出谓词,将生成一个生成器,该生成器返回原始列表

>>> values = range(4)
>>> predicates = []
>>> list(map(list, multi_split_by(values, predicates)))
[[0, 1, 2, 3]]

安装

使用以下命令从PyPI安装

$ pip install multisplitby

或使用以下命令从GitHub获取最新代码

$ git clone https://github.com/cthoyt/multisplitby.git
$ cd multisplitby
$ pip install -e .

项目详情


下载文件

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

源代码分发

multisplitby-0.0.1.tar.gz (5.6 kB 查看哈希)

上传时间 源代码

构建分发

multisplitby-0.0.1-py3-none-any.whl (4.0 kB 查看哈希)

上传时间 Python 3

支持