意见
views的Python项目详细描述
views–生成器和序列的有效工具
^ {tt1}$模块为现有的Python理解和生成器表达式提供了补充。(链式)序列视图可以使用seq生成,生成器可以使用gen链式生成,如下例所示。
欢迎任何反馈或建议。
- 电子邮件:koos.zevenhoven@aalto.fi
- 推特:@k7hoven
开始
要求
- Python3.6+
安装
软件包可以用pip安装(确保已安装):
pip3 install git+http://github.com/k7hoven/views
或者如果您的默认python是python 3:
pip install git+http://github.com/k7hoven/views
基本用法
这里有一些基本的介绍性例子,但是它们应该能让你开始。
序列视图理解语法
可以将链单个对象和序列更改为一个序列视图。使用::就像在元组(un)打包中使用*一样。结果对象支持切片和索引。
示例:
>>>fromviewsimportseq>>>seq[::range(3),None,::"abc","Hi!"]<sequenceview8:[0,1,2,None,'a','b','c','Hi!']>>>>seq[::range(100)]<sequenceview100:[0,1,2,3,4,...,96,97,98,99]>
生成器理解语法
使用likeseq。生成的对象是生成器。
示例:
>>>fromviewsimportgen>>>list(gen[::range(3),3,4,::range(5,7),7])[0,1,2,3,4,5,6,7]
链式序列和生成器/iterable
可以使用seq.chain(*sequences)链接任意数量的序列,使用gen.chain(*iterables)链接任意数量的生成器。后者相当于itertools.chain(*iterables)。
示例:
>>>fromviewsimportseq,gen>>>seq.chain([1,2,3],[4,5,6])<sequenceview6:[1,2,3,4,5,6]>>>>list(gen.chain([1,2,3],[4,5,6]))[1,2,3,4,5,6]
玩得开心!
更改日志
0.3.0(2017-10-10)
- 添加seq.chain(*sequences)和gen.chain(*iterables)
- 一些速度优化,特别是对seq。
0.2.0(2017-09-11)
- lengthChangederRor现在是RuntimeError的子类。
- 对seq和gen进行小优化。
0.1.0(2017-06-06)
- 第一个版本