首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python itertools指南

那些 比你想象中的更为强大。

什么是迭代?

简单的说,迭代是可以被 循环使用的数据类型,Python中常见的迭代器是列表。

在上面的例子中,我们创建了一个字符串列表,我们已经给这个列表命名为 。

我们可以使用 循环来迭代,下面的的列表中将输出列表中的每一个元素。

Python中有许多不同种类的迭代,但是在本教程中,我们将使用列表。

要求

我们必须导入该 模块才能使用它,我们还将导入 模块。

以下所有示例将包含这些导入。

itertools

accumulate()

该函数会返回函数结果的迭代器,函数可以是变量来传递。 函数将一个函数作为参数。它也需要一个迭代。它返回所有的结果,结果本身包含在一个迭代器中。

Example

Example

需要两个数字并乘以它们

在下一个例子中将会使用该 功能

Example

Example

该 函数返回最大的项

传递函数是可选的

Example

Output

如果没有指定功能,项目将相加。

count()

迭代器每次返回 的值

Example

返回 之间的所有奇数

Output

cycle()

无限循环迭代器中的每一个元素

Example

在上面的代码中,我们创建一个列表,然后我们循环或循环遍历这个列表。通常,一个 循环逐步循环,直到它到达结束。如果一个列表有 个项目,循环将重复3次。但是如果我们使用这个 功能的话。当我们到达迭代的结束时,我们从一开始就重新开始。

Output

repeat()

此功能将一遍又一遍地重复一个对象,除非有一个 次数。

Example

在上面的代码中,我们创建一个可重复的迭代 ,它会不停地循环输出

Output

Example

如果我们使用 参数,可以限制它将重复的次数。

Output

在这个例子中, 只重复三次

chain()

此函数需要一系列迭代,并将其返回为一个长的迭代。

Example

Output

compress()

这个函数可以使用另一个过滤器来迭代

Example

Output

dropwhile()

做一个迭代器,只要返回为 ,就从 中删除元素,否则就返回后面的每个元素

Example

Output

好。这可以令人困惑 代码说,当项目小于5时,删除每个项目。遇到不少于5的项目后,返回剩下的项目。这就是为什么最后一个被归还。

Step Through It

groupby()

简单地说,这个功能将事情集中在一起

Example

Output

filterfalse()

这个函数使迭代器从 中过滤元素,只返回的元素

Example

Output

Debug

islice()

这个功能非常像切片,此功能允许您剪切一个可迭代的片段

Example

Output

starmap()

此函数使迭代器使用从 获取的参数来计算函数

Example

Output

Step Through

tee()

从单个迭代中返回 个独立迭代器

Example

默认值为2,但您可以根据需要进行许多操作。

Output

takewhile()

这是相反的 ,只要返回为 ,该函数就可以使用迭代器并从 返回元素

Example

Output

Step Through It

zip_longest()

此函数使迭代器聚合每个迭代的元素,如果迭代长度不均匀,则缺少的值将被填充为 。迭代继续,直到最长的迭代耗尽。

Example

Output

product()

此函数从一系列迭代创建笛卡尔乘积。

Example

Output

想象一下这样的桌子:

permutations()

Example

Output

combinations()

此函数需要一个迭代和一个整数,这将创建具有 成员的所有独特组合。

Example

在这段代码中,我们使用2个成员组合所有组合。

Output

Example

在这段代码中,我们使用3个成员组合所有组合。这有点不太令人兴奋。

Output

combinationswithreplacement()

这一个就像 功能一样,但是这个可以让单个元素重复一次。

Example

Output

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180804G0ROPM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券