【Python】Itertools.cycle()用法及代码示例

2024-08-27 17:32

本文主要是介绍【Python】Itertools.cycle()用法及代码示例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

让迭代器可以无限循环迭代。

迭代器定义为对象类型,其中包含可以使用循环访问或迭代的值。 内置与Python一起提供了不同的迭代器,例如列表,集合等。Itertools是Python模块,其中包含一些用于使用迭代器生成序列的内置函数。该模块提供了在迭代器上工作以生成复杂迭代器的各种功能。该模块可作为一种快速的内存有效工具,可单独使用或组合使用以形成迭代器代数。

有不同类型的迭代器

  • 无限迭代器:

    这些类型的迭代器会产生无限序列。

  • 短序列迭代器:

    这些迭代器产生在某些迭代之后终止的序列。

  • 组合发电机的功能:

    ​​​​​​​这些生成器组合产生与输入自变量相关的序列。

Itertools.cycle()

  • 函数仅接受一个参数作为输入,可以像列表,字符串,元组等
  • 该函数返回迭代器对象类型
  • 在函数的实现中,返回类型为yield,它在不破坏局部变量的情况下挂起函数执行。由生成中间结果的生成器使用
  • 它遍历输入自变量中的每个元素并产生它并重复循环,并产生一个无穷大的自变量序列

下面提到的Python程序说明了循环功能的功能。它以字符串类型作为参数并产生无限序列。

import itertools # String for sequence generation 
Inputstring ="Geeks"# Calling the function Cycle from 
# itertools and passing string as  
#an argument and the function returns 
# the iterator object 
StringBuffer = itertools.cycle(Inputstring) 
SequenceRepeation = 0
SequenceStart = 0
SequenceEnd = len(Inputstring) for output in StringBuffer:if(SequenceStart == 0):print("Sequence % d"%(SequenceRepeation + 1)) # Cycle function iterates through each # element and produces the sequence  # and repeats it the sequence print(output, end =" ") # Checks the End of the Sequence according  # to the give input argument if(SequenceStart == SequenceEnd-1):if(SequenceRepeation>= 2):breakelse:SequenceRepeation+= 1SequenceStart = 0print("\n") else:SequenceStart+= 1

 

输出:

Sequence  1
G e e k s Sequence  2
G e e k s Sequence  3
G e e k s

itertools.cycle函数还可以与Python列表一起使用。下面提到的Python程序说明了该功能。它以Python列表作为参数并产生无限序列。

import itertools # List for sequence generation 
Inputlist = [1, 2, 3] # Calling the function Cycle from 
# itertools and passing list as  
# an argument and the function  
# returns the iterator object 
ListBuffer = itertools.cycle(Inputlist) 
SequenceRepeation = 0
SequenceStart = 0
SequenceEnd = len(Inputlist) for output in ListBuffer:if(SequenceStart == 0):print("Sequence % d"%(SequenceRepeation + 1)) # Cycle function iterates through  # each element and produces the  # sequence and repeats it the sequence print(output, end =" ") # Checks the End of the Sequence according # to the give input argument if(SequenceStart == SequenceEnd-1):if(SequenceRepeation>= 2):breakelse:SequenceRepeation+= 1SequenceStart = 0print("\n") else:SequenceStart+= 1

输出:

Sequence  1
1 2 3 Sequence  2
1 2 3 Sequence  3
1 2 3 

这篇关于【Python】Itertools.cycle()用法及代码示例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1112316

相关文章

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

C语言中%zu的用法解读

《C语言中%zu的用法解读》size_t是无符号整数类型,用于表示对象大小或内存操作结果,%zu是C99标准中专为size_t设计的printf占位符,避免因类型不匹配导致错误,使用%u或%d可能引发... 目录size_t 类型与 %zu 占位符%zu 的用途替代占位符的风险兼容性说明其他相关占位符验证示

Python安装Pandas库的两种方法

《Python安装Pandas库的两种方法》本文介绍了三种安装PythonPandas库的方法,通过cmd命令行安装并解决版本冲突,手动下载whl文件安装,更换国内镜像源加速下载,最后建议用pipli... 目录方法一:cmd命令行执行pip install pandas方法二:找到pandas下载库,然后

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买