迭代工具。但很挑剔。即使是在python 2上。

picklable-itertools的Python项目详细描述


https://img.shields.io/coveralls/mila-udem/picklable-itertools.svghttps://travis-ci.org/mila-udem/picklable-itertools.svg?branch=masterhttps://img.shields.io/scrutinizer/g/mila-udem/picklable-itertools.svghttps://img.shields.io/badge/license-MIT-blue.svg

可选择工具

在python中重新实现python标准库的itertools, 使用pickable迭代器对象。打算是Python2.7和3.4+ 兼容的。还包括pickable、python{2、3}兼容的实现 一些相关的实用程序,包括Toolz库中的一些函数, 在picklable_itertools.extras中。

为什么?

  • 因为标准库pickle模块(或者优秀的dill包) 无法序列化所有itertools迭代器,至少在python 2上是这样 (至少有些在python 3上是可序列化的)。
  • 因为在itertools中有很多这样的例子 简化代码,但不能使用,因为必须保持可序列化性 跨Python2和Python3。开发中的框架Blocks 我们的第一个消费者。我们希望能够序列化 长期运行的程序,以便以后恢复我们不能这样做 不可拾取的对象。

哲学

  • 这应该是一个替换项非常不言自明。测试 针对标准库itertools或内置实现 验证行为匹配。其中Python2和Python3的不同之处在于 命名,(filterfalsevsifilterfalsezip_longestvs.izip_longest) 我们两者都提供。我们还提供了仅在 Python 2的itertoolsifilterizip)化身也可用 在python 3的内置名称下(filterzip),方便使用。 当新对象被添加到python 3itertools模块时,我们打算 要添加它们(accumulate,例如,只在python 3中出现,并且 pickle实现包含在这个包中。)
  • 尽可能优雅地处理内置类型。列表迭代器等。 在Python2.x上不可选择,因此我们提供了另一种选择 实施。文件迭代器也被透明地处理。迪克特 迭代器和集合迭代器当前不支持picklable_itertools.xrange可以用作 python 2xrange/python 3range,其好处是迭代器 由它生成的将可在Python2和3上选择
  • 过早的优化是万恶之源这些东西是 在python中实现,所以速度显然不是我们主要关心的问题。几个 更高级的迭代器是通过链接更简单的迭代器来构造的 一起,这不是最有效的方法,但可以简化 编码很多。如果发现速度(或较浅的对象图)是 必要或可取的,这些都可以重新实现。拉动请求 对此,我们表示欢迎。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何修改打印板?   java Spring批处理JdbcCursorItemReader还是RepositoryItemReader?   java如何在JTable Swing中增加标题列的字体?   java在数组方面遇到问题,导致表达式非法启动   java如何为maven pom的某些部分关闭Eclipse代码格式化程序。xml   java Dropwizard登录代码   java Jersey 2.22:客户端的默认连接超时是多少?   java无法自动连接字段:javax。sql。数据来源   如何从java中的行列表中获取单词列表?   java JDBC批量更新和处理异常?   计算大根:bigdecimal/java   java如何在JavaCC语法中提到trycatch块   javasocket。getInetAddress()不返回任何内容   oracle SQL开发人员错误无法找到Java虚拟机   java我如何计算和显示未来5年每一年的投资价值   java如何关闭浏览器选项卡?   java如何在showMessageDialog中打印双2D数组?   java从站点抓取播放列表URL?   selenium中的java点击css按钮