Python 教程之控制流(11)无限迭代器

简介: Python 教程之控制流(11)无限迭代器

Python的Itetool是一个模块,它提供了各种函数,这些函数在迭代器上工作以产生复杂的迭代器。该模块作为一个快速,内存效率的工具,可以单独使用或组合使用以形成迭代器代数

例如,假设有两个列表,并且您想要将它们的元素相乘。有几种方法可以实现这一目标。可以使用朴素的方法,即同时迭代列表的元素并将它们相乘。另一种方法是使用 map 函数,即通过将 mul 运算符作为第一个参数传递给 map 函数,并将 List 作为该函数的第二个和第三个参数传递。让我们看看每种方法所花费的时间。

# 演示迭代器模块的Python程序
import operator
import time
# 定义列表
L1 = [1, 2, 3]
L2 = [2, 3, 4]
# 映射函数之前的开始时间
t1 = time.time()
# 计算结果
a, b, c = map(operator.mul, L1, L2)
# 映射函数后的结束时间
t2 = time.time()
# 映射函数花费的时间
print("Result:", a, b, c)
print("Time taken by map function: %.6f" %(t2 - t1))
# 初始方法之前的开始时间
t1 = time.time()
# 使用for循环计算结果
print("Result:", end = " ")
for i in range(3):
  print(L1[i] * L2[i], end = " ")
# 朴素方法后的结束时间
t2 = time.time()
print("\nTime taken by for loop: %.6f" %(t2 - t1))

输出:

Result: 2 6 12
Time taken by map function: 0.000005
Result: 2 6 12 
Time taken by for loop: 0.000014

在上面的示例中,可以看出 map 函数所花费的时间大约是 for 循环所用时间的一半。这表明迭代工具是快速、内存高效的工具。

此模块提供的不同类型的迭代器包括:

  • 无限迭代器
  • 组合迭代器
  • 终止迭代器

无限迭代器

Python 中的迭代器是可以与“for in 循环”一起使用的任何 Python 类型。Python 列表、元组、字典和集合都是内置迭代器的示例。但是迭代器对象不必穷尽,有时它可以是无限的。这种类型的迭代器称为无限迭代器

Python 提供了三种类型的无限迭代器:

  • 计数(开始,步骤): 此迭代器从“开始”数字开始打印并无限打印。如果提到步骤,则跳过数字,否则默认情况下步骤为1。请参阅下面的示例,了解它与 for in 循环的用法。
    例:

# 演示无限迭代器的Python程序
import itertools
# for 循环
for i in itertools.count(5, 5):
  if i == 35:
    break
  else:
    print(i, end =" ")

输出:

5 10 15 20 25 30
  • 循环(可迭代): 此迭代器按传递的容器中的顺序打印所有值。当所有元素都以循环方式打印时,它将再次从头开始重新开始打印
    示例 1:

# 演示无限迭代器的Python程序
import itertools
count = 0
# for 循环
for i in itertools.cycle('AB'):
  if count > 7:
    break
  else:
    print(i, end = " ")
    count += 1

输出:

css

A B A B A B A B

示例 2: 使用下一个函数。

# 演示无限迭代器的Python程序
import itertools
l = ['Geeks', 'for', 'Geeks']
# 定义迭代器
iterators = itertools.cycle(l)
# for 循环
for i in range(6):
  # Using next function
  print(next(iterators), end = " ")

组合迭代器

输出:

rust

Geeks for Geeks Geeks for Geeks
  • 重复(值、数): 此迭代器重复打印传递的值无限次。如果提到可选关键字 num,则它会重复打印 num 次数。
    例:

# 演示 repeat() 工作的Python代码
# 为迭代器操作导入“itertools”
import itertools
# 使用 repeat() 重复打印数字
print ("Printing the numbers repeatedly : ")
print (list(itertools.repeat(25, 4)))

输出:

Printing the numbers repeatedly : 
[25, 25, 25, 25]


目录
相关文章
|
1天前
|
IDE 测试技术 项目管理
【新手必看】PyCharm2025 免费下载安装配置教程+Python环境搭建、图文并茂全副武装学起来才嗖嗖的快,绝对最详细!
PyCharm是由JetBrains开发的Python集成开发环境(IDE),专为Python开发者设计,支持Web开发、调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试和版本控制等功能。它有专业版、教育版和社区版三个版本,其中社区版免费且适合个人和小型团队使用,包含基本的Python开发功能。安装PyCharm前需先安装Python解释器,并配置环境变量。通过简单的步骤即可在PyCharm中创建并运行Python项目,如输出“Hello World”。
31 8
【新手必看】PyCharm2025 免费下载安装配置教程+Python环境搭建、图文并茂全副武装学起来才嗖嗖的快,绝对最详细!
|
1月前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
77 8
|
1月前
Seaborn 教程-主题(Theme)
Seaborn 教程-主题(Theme)
135 7
|
1月前
|
Python
Seaborn 教程-模板(Context)
Seaborn 教程-模板(Context)
52 4
|
1月前
|
数据可视化 Python
Seaborn 教程
Seaborn 教程
55 5
|
2月前
|
大数据 数据处理 开发者
Python中的迭代器和生成器:不仅仅是语法糖####
本文探讨了Python中迭代器和生成器的深层价值,它们不仅简化代码、提升性能,还促进了函数式编程风格。通过具体示例,揭示了这些工具在处理大数据、惰性求值及资源管理等方面的优势。 ####
|
8月前
|
Python
【Python操作基础】——字典,迭代器和生成器
【Python操作基础】——字典,迭代器和生成器
|
4月前
|
机器学习/深度学习 设计模式 大数据
30天拿下Python之迭代器和生成器
30天拿下Python之迭代器和生成器
25 3
|
3月前
|
存储 大数据 Python
Python 中迭代器与生成器:深度解析与实用指南
Python 中迭代器与生成器:深度解析与实用指南
27 0
|
6月前
|
Python
python解包迭代器或生成器
【7月更文挑战第1天】
59 3

热门文章

最新文章