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

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如何将一个jTable双击鼠标事件应用于同一个包中的不同JFrame   java是jar或类混淆的最佳工具,无需编写任何额外的配置文件   java使用JAXB,如何将attributedefined类型的XMLelement解组到基于该属性的对象?   数组的java秩值   java Netty 4池返回一个尚未准备好发送实际消息的通道   java如何避免观察者模式中的冲突?   我可以在Java的静态成员函数中声明一个静态变量吗?   java在WebView HTML表中显示SQLite数据   java本地Pubsub仿真器无法与数据流一起工作   JAVAutil。NoSuchElementException:null(在java.util.StringTokenizer中)   数据结构为什么Java中的地图不是集合?   如何在Windows8的命令提示符下运行简单的java类   用C++或露比调用java Spring服务   java如何在intellij中将项目名称作为变量用于XML文件?   JRE 1.7u60早期版本上的java小程序错误   java的“可比性”比表面上的精确多少?