用于分割或分割序列的函数。

split的Python项目详细描述


用于拆分和分区序列的函数。

安装

pip install split

用法

此模块中的所有函数都返回迭代器,并使用输入 懒洋洋的。在下面的示例中,使用^{tt1}强制结果$ 和dict

大小相等的块

要将序列分成大小相等的块,请使用chop

>>> from split import chop
>>> list(chop(3, range(10)))
[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]]

如果给定了truncate=True关键字参数,则序列长度为 截断为块大小的倍数,并且所有块都具有相同的 尺寸:

>>> list(chop(3, range(10), truncate=True))
[[0, 1, 2], [3, 4, 5], [6, 7, 8]]

谓词的子序列

要通过给定的谓词将序列分成两部分,请使用partition

>>> from split import partition
>>> def odd(x): return x%2
>>> map(list, partition(odd, range(5)))
[[1, 3], [0, 2, 4]]

对于更一般的分区,请使用groupby

>>> [(k, list(i)) for k,i in groupby(lambda x: x%3, range(7))]
[(0, [0, 3, 6]), (1, [1, 4]), (2, [2, 5])]

此函数与itertools.groupby不同:它只返回 每个谓词值一个子序列迭代器。它的返回值可以是 转换成字典。

当处理非常长的序列时,考虑使用 predicate_values关键字参数,以避免扫描整个 顺序。例如:

>>> longseq = xrange(int(1e9))
>>> pred = lambda x: x%3
>>> dict(groupby(pred, longseq, predicate_values=(0,1,2)))
{0: <generator object subsequence at 0x301b7d0>,
 1: <generator object subsequence at 0x301b780>,
 2: <generator object subsequence at 0x301b730>}

分离器破裂

要在某些分隔符上将序列分成块,请使用split。为了 例如,在零元素上断开:

>>> list(split(0, [1,2,3,0,4,5,0,0,6]))
[[1, 2, 3], [4, 5], [], [6]]

也可以将函数用作谓词:

>>> list(split(lambda x: x==5, range(10)))
[[0, 1, 2, 3, 4], [6, 7, 8, 9]]

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

推荐PyPI第三方库


热门话题
使用导入范围函数下载文件时发生java错误   java是否提供内置的静态字符串。比较方法?   添加“再次播放?”Java中我的随机数猜测游戏的功能   java在tomcat 8中配置JPDA   编译器构造Java:检查编译时是否存在给定的方法名   当RedistreLimiter阻止请求时,java Spring云网关全局筛选器未执行   java无法将带有Gradle的单片Spring Boot应用程序转换为多模块   Eclipse(IDE)如何在没有公共类的情况下在Java中运行main方法?   用Java上传Youtube帖子   没有css和javascript的html Java httpGet页面正文   具有相同哈希代码的java Equal对象不会映射到HashMap中的相同值   字符串格式在Java中如何向数字中添加左填充的零?   java表示XML/DOM对象中attributesvalues或textnodes上的“条件”   JavaSpringJPA根据从POST请求体获取的列和值查询数据库   java BouncyCastle编码差异   java从intellij idea中提取运行命令   java类型、属性、实例和值之间的关系   java除了一个复选框外,屏幕上没有显示任何内容