python的延迟计算序列类型

lazyseq的Python项目详细描述


travis-ci build status

lazyseq是一个实现单个类LazySeq的简单库,它 提供一个可以像不可变列表一样使用的延迟计算序列。 你可以把它看作是克洛朱尔的一个Python版本 SeqLazySeq的主要用途是 包装生成器或 generator expressions制作 他们执着,但仍然懒惰。

LazySeq实现了python的序列接口,因此具有 __getitem____len____contains____iter____reversed__index,和count

从lazyseq获取一个项目相当于从 作为列表提供。但是,只有 迭代(所有到最大请求元素的),以及所有 被求值的元素缓存在LazySeq中,因此可以对其进行迭代 再一次。注意,像len(seq)这样的一些操作将在必要时迭代 覆盖(从而缓存)整个iterable。

要使用lazyseq,只需在任何python iterable上调用LazySeq

>>>fromlazyseqimportLazySeq>>>seq=LazySeq(x**2forxinrange(5))>>>seqLazySeq([...])>>>seq[:3][0,1,4]>>>seqLazySeq([0,1,4,...])>>>list(seq)[0,1,4,9,16]>>>seqLazySeq([0,1,4,9,16])

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

推荐PyPI第三方库


热门话题
java在一个问题被连续正确回答三次/并添加差异后,我如何将程序循环回开始   Java中未实例化的匿名类   java如何在Android中录制视频,只允许横向模式和最长时间录制时间   java从另一个活动发送实时消息   多线程java线程和互斥   java禁用Spring安全日志   JAVA伊奥。StreamCorruptedException:在与子级和父级ProcessBuilder通信时写入子级中的标准输出时,流头无效   使用Java(HttpURLConnection)对Restheart进行身份验证(对于Mongodb)   java如何解决Jenkins中的SAXParseException?   java为什么我需要mockito来测试Spring应用程序?   计算sin-cos和tan时缺乏精度(java)   java Hibernate。不同项目中相同一对一映射的不同行为   java图像滑块:如何使用JavaFX将图像放在另一个图像上   java Mockito在使用when时抛出NotAMockException   http Java servlet发送回响应