Python教程之无限迭代器的使用详解

 更新时间:2022年09月30日 08:15:39   作者:海拥  
Python的Itetool是一个模块,它提供了各种函数,这些函数在迭代器上工作以产生复杂的迭代器。该模块作为一个快速,内存效率的工具,可以单独使用或组合使用以形成迭代器代数。本文就来和大家详细聊聊无限迭代器,感兴趣的可以了解一下

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

输出:

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 = " ")

组合迭代器

输出:

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]

到此这篇关于Python教程之无限迭代器的使用详解的文章就介绍到这了,更多相关Python无限迭代器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 关于python中readlines函数的参数hint的相关知识总结

    关于python中readlines函数的参数hint的相关知识总结

    今天给大家带来的是关于Python函数的相关知识,文章围绕着python中readlines函数的参数hint展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法

    Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法

    这篇文章主要介绍了Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法,涉及Python针对浏览器及应用程序的相关操作技巧,代码非常简单实用,需要的朋友可以参考下
    2016-04-04
  • Python并行分布式框架Celery详解

    Python并行分布式框架Celery详解

    今天小编就为大家分享一篇关于Python并行分布式框架Celery详解的文章,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • python3.6使用SMTP协议发送邮件

    python3.6使用SMTP协议发送邮件

    这篇文章主要为大家详细介绍了python3.6使用SMTP协议发送邮件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • 利用Python实现每日新闻推送

    利用Python实现每日新闻推送

    这篇文章主要为大家详细介绍了如何使用Python编写简单的逻辑,通过调用API接口实现每日新闻推送功能,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-06-06
  • Python os库常用操作代码汇总

    Python os库常用操作代码汇总

    这篇文章主要介绍了Python os库常用操作代码汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • python实现邮件循环自动发件功能

    python实现邮件循环自动发件功能

    这篇文章主要介绍了python实现邮件循环自动发件功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • OpenCV中图像与视频的基础操作总结

    OpenCV中图像与视频的基础操作总结

    在计算机视觉领域,OpenCV是一款广泛使用的开源库,本文为大家介绍了如何使用OpenCV进行这些操作,希望能帮助你更好地掌握图像处理和视觉任务的开发技巧
    2023-06-06
  • python中的extend功能及用法

    python中的extend功能及用法

    Python中的extend()方法用于在列表末尾一次性追加另一个列表中的多个值,这篇文章主要介绍了python中的extend功能及用法,需要的朋友可以参考下
    2023-07-07
  • 13行python代码实现对微信进行推送消息的示例代码

    13行python代码实现对微信进行推送消息的示例代码

    本文主要介绍了13行python代码实现对微信进行推送消息的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08

最新评论