Python itertools模块代码范例

Python itertools模块代码范例,Python库文档的“itertools”章的“Itertools Recipes”部分包含了使用该模块函数的很多范例。这里不重复文档中的内容,而是直接引用。学习Python函数式编程,这部分文档属于必读内容。

 Python标准库文档“itertool”章的“Itertools Recipes”节是很好的学习资源,见https://docs.python.org/3/library/itertools.html#itertools-recipes。

注意,这里列出的范例都不是itertools模块中可以导入的函数,如果想在自己开发的应用中使用这些范例,需要阅读代码并理解原理,然后通过复制、修改来使用代码。

下表总结了基于itertools模块中的基本函数实现的一些自定义函数范例。

函数名 参数列表 返回结果
take (n, iterable) 以列表形式返回作为输入参数的可迭代对象的前 n 个值。基于islice()函数实现
tabulate (function, start=0) 返回function(0), function(1), …。通过map(function, count())实现
consume (iterator, n) 使可迭代对象前进 n 步,如果 n 值为None,则遍历完可迭代对象,返回空列表
nth (iterable, n, default=None) 返回可迭代对象的第 n 个值,如果取不到该值则返回给定的默认值。基于islice()函数实现
quantify (iterable, pred=bool) 对可迭代对象的每个元素应用谓词函数,返回结果为“真”的元素个数。基于sum()函数和map()函数实现,并利用了布尔值True转换为整数时值为1的特点
padnone (iterable) 返回输入可迭代对象中的值,并在后面追加无限个None值。主要用于创建类似于zip_longest()或者map()的函数
ncycles (iterable, n) 返回 n 次可迭代对象中的值
dotproduct (vec1, vec2) 数学上向量点积的定义:两个向量对应分量乘积之和
flatten (listOfLists) 展开一层嵌套列表,将多个列表链接为一个列表
repeatfunc (func, times=None, *args) 根据输入的参数列表args执行times次函数func
pairwise (iterable) s -> (s0, s1), (s1, s2), (s2, s3)
grouper (iterable, n, fillvalue=None) 将输入数据按固定长度分组
roundrobin (*iterables) roundrobin('ABC', 'D', 'EF') --> A D E B F C
partition (pred, iterable) 根据谓词函数将输入可迭代对象划分为真值部分和非真值部分
unique_everseen (iterable, key=None) 按照出现顺序列出所有元素,之前出现过的元素除外
unique_justseen (iterable, key=None) 按照出现顺序,列出与前一个元素不同的元素。多用于为已排序的列表剔除相同元素
iter_except (func, exception, first=None) 重复执行函数func,直到出现异常。常用于遍历操作,直到发生KeyError或者IndexError

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程