【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

相关文章

mysql中的group by高级用法

《mysql中的groupby高级用法》MySQL中的GROUPBY是数据聚合分析的核心功能,主要用于将结果集按指定列分组,并结合聚合函数进行统计计算,下面给大家介绍mysql中的groupby用法... 目录一、基本语法与核心功能二、基础用法示例1. 单列分组统计2. 多列组合分组3. 与WHERE结合使

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT

Java中Scanner的用法示例小结

《Java中Scanner的用法示例小结》有时候我们在编写代码的时候可能会使用输入和输出,那Java也有自己的输入和输出,今天我们来探究一下,对JavaScanner用法相关知识感兴趣的朋友一起看看吧... 目录前言一 输出二 输入Scanner的使用多组输入三 综合练习:猜数字游戏猜数字前言有时候我们在

java解析jwt中的payload的用法

《java解析jwt中的payload的用法》:本文主要介绍java解析jwt中的payload的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java解析jwt中的payload1. 使用 jjwt 库步骤 1:添加依赖步骤 2:解析 JWT2. 使用 N

一文带你搞懂Python中__init__.py到底是什么

《一文带你搞懂Python中__init__.py到底是什么》朋友们,今天我们来聊聊Python里一个低调却至关重要的文件——__init__.py,有些人可能听说过它是“包的标志”,也有人觉得它“没... 目录先搞懂 python 模块(module)Python 包(package)是啥?那么 __in

使用Python实现图像LBP特征提取的操作方法

《使用Python实现图像LBP特征提取的操作方法》LBP特征叫做局部二值模式,常用于纹理特征提取,并在纹理分类中具有较强的区分能力,本文给大家介绍了如何使用Python实现图像LBP特征提取的操作方... 目录一、LBP特征介绍二、LBP特征描述三、一些改进版本的LBP1.圆形LBP算子2.旋转不变的LB