首页 > 编程语言 >Python中itertools

Python中itertools

时间:2022-08-27 15:47:14浏览次数:48  
标签:count 10 迭代 Python itertools accumulate import

一、介绍

itertools 是python的迭代器,itertools提供的工具相当高效且节省内存

使用这些工具,可创建自己定制的迭代器用于高效率循环

1.count(初值=0,步长=1):

 1 from itertools import count
 2 for i in count():
 3     print i
 4     if i > 10:
 5         break
 6 
 7 #从0开始循环
 8 0
 9 1
10 2
11 3
12 4
13 5
14 6
15 7
16 8
17 9
18 10
19 11

2.islice(count(10),5):从 10 开始,输出 5 个元素后结束。islice 的第二个参数控制何时停止迭代。

 1 from itertools import count,islice
 2 for i in islice(count(10),5):
 3     print i
 4 
 5 #从10开始循环迭代5次后退出循环
 6 10
 7 11
 8 12
 9 13
10 14

3.cycle:创建某个范围(可以是元组、字符串、列表等),在该范围内反复循环

 1 from itertools import cycle
 2 count = 0
 3 for item in cycle('XYZ'):
 4     if count > 7:
 5         break
 6     print item
 7     count = count + 1
 8 
 9 #在xyz之间无限循环
10 X
11 Y
12 Z
13 X
14 Y
15 Z
16 X

4.accumulate(可迭代对象【,函数】):迭代器将返回累计求和结果,或者传入两个参数的话,由传入的函数累积计算的结果。默认设定为相加

 1 >>> from itertools import accumulate 2 >>> list(accumulate(range(10))) 3 [0, 1, 3, 6, 10, 15, 21, 28, 36, 45] 

相乘

1  from itertools import accumulate
2  import operator
3  >>> list(accumulate(range(1, 6), operator.mul))
4  [1, 2, 6, 24, 120]

5.chain(可迭代对象):可将一组迭代对象串联起来,形成一个更大的迭代器

 1 from itertools import chain
 2 for c in chain(['a','b','cd'],['ef',123],'XYZ'):
 3     print c
 4 
 5 #输出
 6 a
 7 b
 8 cd
 9 ef
10 123
11 X
12 Y
13 Z
14 
15 #备注类似于多个list叠加
16 mm = ['a','b','cd'] + ['ef',123] + ['X','Y','Z']
View Code

6.groupby:将迭代器中相邻的重复的元素挑出来放在一起

 1 from itertools import groupby
 2 
 3 for key, group in groupby('AAABBBCCAAA'):
 4     print(key,list(group))
 5 
 6 #输出
 7 # A ['A', 'A', 'A']
 8 # B ['B', 'B', 'B']
 9 # C ['C', 'C']
10 # A ['A', 'A', 'A']

 

标签:count,10,迭代,Python,itertools,accumulate,import
From: https://www.cnblogs.com/jihexiansheng/p/16630665.html

相关文章

  • Python - Requests(文件上传)
    文件上传(Form表单方式)1,单文件上传(1)下面是最简单的文件上传代码,运行后将logo.png这个文件上传到服务器:importrequests......Python-第三方HTTP库Requests使......
  • Python环境安装
    一、下载地址https://www.python.org/downloads/二、安装软件这里介绍Windows系统下python环境安装InstallNow:为默认安装(不建议),不然会把环境自动安装到个人目录里,找......
  • python基础__装饰器(修饰器)
    装饰器处理逻辑当解释器读到@装饰符,会先解析@下一行的内容,把下一行的函数或者类作为@后边的函数的参数,执行被装饰的函数。例子1:被修饰函数不带参数1deflog(func):......
  • python之argparse
    argparse是Python内置的用来处理命令行参数的库。写脚本时有时会用到,这里略做总结便于以后使用。1使用sys.argv模块:脚本有时候需要传入一些命令参数:在C语言里,main......
  • python必备基础
    1.基础函数 序号 函数 说明 1print() 打印 2input()  输入  3int()  转化为整形  4float() 转化为浮点型  5str()  ......
  • Python图像处理丨图像的灰度线性变换
    摘要:本文主要讲解灰度线性变换。本文分享自华为云社区《[Python图像处理]十五.图像的灰度线性变换》,作者:eastmount。一.图像灰度线性变换原理图像的灰度线性变换是通过......
  • python内存管理机制
    python作为一门解释型语言,以代码简洁易懂著称。我们可以直接对名称赋值,而不必声明类型。名称类型的确定、内存空间的分配与释放都是由python解释器在运行时进行的。python......
  • 算法题python用法
    算法题python用法大写变小写往后移动一位chr(ord(v.lower())+1)大写、小写、数字i.isalpha():#英文i.isspace()#空格​ifitem.isupper():#大写     a......
  • 【技术流吃瓜】python可视化大屏舆情分析“张天爱“事件网友评论
    目录一、事件背景二、微热点分析二、自开发Python舆情分析2.1Python爬虫2.2可视化大屏2.2.1大标题2.2.2词云图2.2.3条形图2.2.4饼图(玫瑰图)2.2.5地图三、演示视频一......
  • Python 下载大文件,哪种方式速度更快
    转载:Python下载大文件,哪种方式速度更快(qq.com)方法一使用以下流式代码,无论下载文件的大小如何,Python内存占用都不会增加:def download_file(url):    local_fil......