跳转到主要内容

列表处理工具和功能实用工具

项目描述

Build Status Coverage Status Version Status

一组用于迭代器、函数和字典的实用函数。

请参阅 PyToolz 文档,网址为 https://toolz.readthedocs.io

许可协议

新BSD许可协议。请参阅 许可文件

安装

toolz 位于 Python 软件包索引(PyPI)上

pip install toolz

结构和继承

toolz 由三部分组成

itertoolz,用于对可迭代对象进行操作。例如:groupbyuniqueinterpose

functoolz,用于高阶函数。例如:memoizecurrycompose

dicttoolz,用于对字典进行操作。例如:assocupdate-inmerge

这些函数来自函数式语言的传统列表处理,它们可以很好地协同工作以完成常见的复杂任务。

请参阅我们的 API 文档 以获取更多详细信息。

示例

此示例从 toolz 内部构建了一个标准的词频函数

>>> def stem(word):
...     """ Stem word to primitive form """
...     return word.lower().rstrip(",.!:;'-\"").lstrip("'\"")

>>> from toolz import compose, frequencies
>>> from toolz.curried import map
>>> wordcount = compose(frequencies, map(stem), str.split)

>>> sentence = "This cat jumped over this other cat!"
>>> wordcount(sentence)
{'this': 2, 'cat': 2, 'jumped': 1, 'over': 1, 'other': 1}

依赖项

toolz 支持 Python 3.8+,并具有统一的代码库。它是纯 Python 编写的,并且除了标准库之外不需要任何依赖项。

简而言之,这是一个轻量级的依赖项。

CyToolz

Cython 中重新实现了 toolz 项目。CyToolz 项目是纯 Python 实现的替代品。请参阅 CyToolz GitHub 页面 以获取更多详细信息。

另请参阅

  • Underscore.js:JavaScript 的类似库

  • Enumerable:Ruby 的类似库

  • Clojure:一种函数式语言,其标准库中有几个与 toolz 对应的部分

  • itertools:Python 标准库中的迭代器工具

  • functools:Python 标准库中的函数工具

欢迎贡献力量

toolz 的目标是成为一个实用函数的存储库,特别是那些来自函数式编程和列表处理传统的函数。我们欢迎符合此范围的工作贡献。

我们还试图保持 API 尽量小,以保持 toolz 可管理。理想的贡献是与现有函数显著不同的,并在其他几个函数式系统中具有先例。

请查看我们的 问题页面 以获取贡献想法。

社区

请参阅我们的 邮件列表。我们很友好。

项目详情


下载文件

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

源分发

toolz-1.0.0.tar.gz (66.8 kB 查看哈希值)

上传时间

构建分发

toolz-1.0.0-py3-none-any.whl (56.4 kB 查看哈希值)

上传时间 Python 3

由以下组织支持