黑马程序员技术交流社区

标题: 【上海校区】Python itertools指南 [打印本页]

作者: 不二晨    时间: 2018-11-5 09:49
标题: 【上海校区】Python itertools指南
什么是迭代?
简单的说,迭代是可以被 for循环使用的数据类型,Python中常见的迭代器是列表。
                                                       
在上面的例子中,我们创建了一个字符串列表,我们已经给这个列表命名为 colors。
我们可以使用 for循环来迭代,下面的的列表中将输出列表中的每一个元素。
                                                                        
Python中有许多不同种类的迭代,但是在本教程中,我们将使用列表。
要求
我们必须导入该 itertools模块才能使用它,我们还将导入 operator模块。
以下所有示例将包含这些导入。
itertoolsaccumulate()
该函数会返回函数结果的迭代器,函数可以是变量来传递。 accumulate()函数将一个函数作为参数。它也需要一个迭代。它返回所有的结果,结果本身包含在一个迭代器中。
operator.mul需要两个数字并乘以它们
                                                                                                
在下一个例子中将会使用该 max功能
该 max函数返回最大的项
                                                                                                                
传递函数是可选的
如果没有指定功能,项目将相加。
count()
迭代器每次返回 start+step的值
返回 1-10之间的所有奇数
                                                                                                                                cycle()
无限循环迭代器中的每一个元素
在上面的代码中,我们创建一个列表,然后我们循环或循环遍历这个列表。通常,一个 for循环逐步循环,直到它到达结束。如果一个列表有 3个项目,循环将重复3次。但是如果我们使用这个cycle()功能的话。当我们到达迭代的结束时,我们从一开始就重新开始。
repeat()
此功能将一遍又一遍地重复一个对象,除非有一个 times次数。
在上面的代码中,我们创建一个可重复的迭代 spam,它会不停地循环输出 spam
如果我们使用 times参数,可以限制它将重复的次数。
在这个例子中, spam只重复三次
chain()
此函数需要一系列迭代,并将其返回为一个长的迭代。
compress()
这个函数可以使用另一个过滤器来迭代
dropwhile()
做一个迭代器,只要返回为 true,就从 iterable中删除元素,否则就返回后面的每个元素
好。这可以令人困惑 代码说,当项目小于5时,删除每个项目。遇到不少于5的项目后,返回剩下的项目。这就是为什么最后一个被归还。
groupby()
简单地说,这个功能将事情集中在一起
filterfalse()
这个函数使迭代器从 iterable中过滤元素,只返回的元素 False
islice()
这个功能非常像切片,此功能允许您剪切一个可迭代的片段
starmap()
此函数使迭代器使用从 iterable获取的参数来计算函数
tee()
从单个迭代中返回 n个独立迭代器
默认值为2,但您可以根据需要进行许多操作。
takewhile()
这是相反的 dropwhile(),只要返回为 true,该函数就可以使用迭代器并从 iterable返回元素
zip_longest()
此函数使迭代器聚合每个迭代的元素,如果迭代长度不均匀,则缺少的值将被填充为 fillvalue。迭代继续,直到最长的迭代耗尽。
product()
此函数从一系列迭代创建笛卡尔乘积。
想象一下这样的桌子:
permutations()combinations()
此函数需要一个迭代和一个整数,这将创建具有 r成员的所有独特组合。
在这段代码中,我们使用2个成员组合所有组合。
在这段代码中,我们使用3个成员组合所有组合。这有点不太令人兴奋。
combinationswithreplacement()
这一个就像 combinations()功能一样,但是这个可以让单个元素重复一次。
【转载】https://juejin.im/entry/5b653ad4f265da0f491bc316


作者: 不二晨    时间: 2018-11-7 09:05
ヾ(◍°∇°◍)ノ゙
作者: 梦缠绕的时候    时间: 2018-11-8 16:54

作者: 魔都黑马少年梦    时间: 2018-11-8 17:03





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2