python的方法链。

slinkie的Python项目详细描述


#



python 3.6及以上版本的方法链。


>
-http://www.www.www.fefaultsourcery.com/post/slinkie
-https://gitlab.com/h4xrk1m/slinkie


















>



用法le

在本例中,我们有一组动物。我们会仔细检查,只拍好狗。

``python
from slinkie import slinkie


animals=[lassie,skippy,scooby,cerberus,garfield]


slinkie(animals)
。filter(lambda animal:animal.type=="dog")
。filter(lambda dog:dog)。很好)
.map(lambda dog:dog.pat())
.consume()
````

我们只挑选好的狗,并将它们收集到一个列表中。

`` python
from slinkie import slinkie


animals=[lassie,skippy,scooby,cerberus,garfield]


好的狗=(
slinkie(animals)
。过滤器(lambda animal:animal.type='dog')
.filter(lambda dog:dog.is_good)
.list()
````

``函数

-`all(key=none)`:使用整个slinkie来查找每个项目是否正确。
-`any(key=none)`:使用slinkie直到找到正确的项目。
-`between(a,b,key=none)`:返回a和b之间的s个项目(包括)。
-`消费(n=无)`:消费n个项目。如果n为none,则使用所有项。
-`count()`:使用所有项生成一个计数。
-`dict(key,transform=none)`:返回所有项的dict。
-`exclude(items,key=none)`:基于项的标识或键函数排除所有项。
-`extend(items)`:生成所有项ms从这里开始。u items,后跟提供给此函数的项。
-`filter(key)`:筛选项。
-`first(key=none)`:如果key为none,则取第一项,否则取key(item)返回true的第一项。如果没有对象,则引发StopIteration。
-` first_或_none(key=none)`:如果key为none,则获取第一个项,否则获取key(item)返回true的第一个项。如果没有对象,则不返回任何对象。
-`flatten()`:将二维结果集展平为一维。
-`foldl(fn,默认值=none)`:向左折叠。与reduce相同。
-`foldr(fn,默认值=none)`:向右折叠。
-`group(key)`:将key上的所有项分组。
-`intersperse(divider)`:将项与divider一起散布。slinkie([1,2,3]).intersperse('x').list()->;[1,'x',2,'x',3]。
-`intersperse_items(dividers)`:将项目与dividers一个一个地散布。slinkie([1,2,3,4,5])。散布项目(['x','y'])。list()->;[1,'x',2,'y',3,'x',4,'y',5]。
-`join(glue='')`:通过glue连接项目,其中glue是字符串。调用glue.join。
-`last(key=none)`:如果key为none,则获取最后一个项,否则获取key(item)返回true的第一个项。如果没有对象,则引发StopIteration。
-` last_或_none(key=none)`:如果key为none,则获取最后一个项,否则获取key(item)返回true的最后一个项。如果没有匹配的对象,则不返回任何对象。
-`len()`:使用所有项生成计数。
-`list()`:返回所有项的列表。
-`map(transform,with_index=false)`:映射项。
-`not_none()`:返回除none以外的所有项。
-`parallelize(fn,线程数=none)`:并行化函数调用。线程数默认为CPU计数+1。
-`partition(n)`:接受n个项目并在新slinkie中返回它们。这样做,直到项目被消耗。
-`reduce(fn,默认值=none)`:向左折叠。与reduce相同。
-`reverse()`:反转slinkie的顺序。
-`select(transform,with_index=false)`:映射项。
-`set()`:返回所有项的集合。
-`sfilter(key)`:筛选项,在key函数上使用splat运算符,只需与smap类似。
-`skip(n)`:跳过n个项。
-`smap(transform)`:映射项的splat。
-`sort(key=none,reverse=false)`:按键对项进行排序。
-`split(number=2)`:将项拆分为较小的slinke。项目使用循环法划分。
-`str(glue='`):使用glue连接项目,其中glue是一个字符串。调用glue.join.
-`sweep(width,step=1)`:类似于itertools的pairwise,这将一次分发项的宽度,偏移量为step。slinkie(range(11)).sweep(2)生成的结果与itertools.pairwise相同,而.sweep(3)将给出(0,1,2),(1,2,3),…(8, 9, 10)。如果slinkie中没有剩余的步骤项,则最后一个项可能没有填充。
-`take(n)`:take n items。
-`tee(display=none)`:通过tee函数的每个项都将使用display函数显示。如果没有提供,则使用print。
-`then(fn)`:接受一个函数,该函数将slinkie作为其唯一参数,并返回一个集合。然后将集合包装在另一个slinkie中。
-`transpose()`:转置slinkie的内容。
-`tuple()`:返回所有项的一个tuple。
-`unique(key=none)`:筛选出不被视为唯一的项。您可以选择提供一个键函数来确定标识。
-`where(key)`:筛选项。


不过,我还是建议您使用virtualenv。

```
$virtualenv venv
$source venv/bin/activate
$pip install-e。
````

对于重大更改,请先打开一个问题来讨论要更改的内容。

请确保根据需要更新(或编写)测试。


\license

[bsd 2-clause license](https://tldrlegal.com/license/bsd-2-clause-license-(freebsd))

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

推荐PyPI第三方库


热门话题
java接口中的每个方法都是抽象的,但在抽象类中,我们也只能使用抽象方法   初始化Java中声明的、未初始化的变量会发生什么情况?   java BouncyCastle openPGP将字节[]数组加密为csv文件   在Java中将类A(和所有子类)映射到类B的实例的字典   RSA公钥编码,在Java和Android中,代码相同,结果不同   java在安卓中实现数字检测语音识别   java取消选择复选框   java如何在其他配置中重用Maven配置XML片段   java有没有一种有效的方法来检查HashMap是否包含映射到相同值的键?   spring处理程序调度失败;嵌套的例外是java。lang.NoClassDefFoundError:org/apache/http/client/HttpClient   带有ehcache的java多层缓存   java如何访问chromium(或任何其他浏览器)cookie   java通过将两个集合与spring data mongodb data中的条件合并来获取计数   安卓中R.java的语法错误