python学习笔记7.6-内建模块itertools

python有一个高级特性就是迭代器,能够提供各种各样的迭代方式,而代码却非常的简单。itertools提供了非常丰富的有关于迭代操作的函数,下面一一介绍。

再次理解可迭代对象: 迭代器产生的可迭代对象不能直接使用,比如计算,需要用for循环迭代处具体的值后才能使用。

1. 无限迭代器

1.1 count()

count()函数产生无限自然序列,由于是无限迭代,所以运行一次,产生一个加1的数。

from itertools import count

a = count(2) #迭代的起始参数
for i in a:
    print(i)

运行了根本停不下来,只能手动结束,强行停止。

1.2 cycle() 将传入的序列无限的重复迭代,因而返回的是序列的元素

from itertools import cycle

a = cycle('abcde') #迭代的起始参数
for i in a:
    print(i)

同样停不下来

1.3 repeat() 将传入的元素重复,如果提供重复次数,那么达到重复次数,将停止。如果不提供重复次数,将一直重复下去。

from itertools import repeat

a = repeat('abcde',6) #迭代的起始参数
for i in a:
    print(i)

重复的是传入的参数

2. chain() 把可迭代对象连在一起,组成一个更大的可迭代对象。

from itertools import chain

a = chain('abcde','fghhhh')
print(a) #直接打印,只能显示迭代地址

for i in a:
    print(i)

3. groupby() 把迭代器中重复元素统计出来。

from itertools import groupby

a = groupby('abcdefghhhhdfadsdfsdeewef')
for key,value in a:
    print(key,list(value))

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏十月梦想

PHP数据类型转换

        Java,c,c++等强类型语言必须先声明数据类型,java和c声明一个整数型(int a=100;)

611
来自专栏小樱的经验随笔

Vijos P1784 数字统计【模拟】

数字统计 背景 来自 NOIP2010 普及组 第一题 描述 请统计某个给定范围[L, R]的所有整数中,数字2出现的次数。 比如在给定范围[2, 22],数...

2519
来自专栏python百例

92-re模块基础用法

672
来自专栏武培轩的专栏

剑指Offer-数组中重复的数字

package Array; /** * 数组中重复的数字 *在一个长度为n的数组里的所有数字都在0到n-1的范围内。 * 数组中某些数字是重复的,但不...

2854
来自专栏章鱼的慢慢技术路

C语言中的字符串处理库函数介绍与实现

762
来自专栏数据结构与算法

集合的前N个元素

集合的前N个元素:编一个程序,按递增次序生成集合M的最小的N个数,M的定义如下:     (1)数1属于M;     (2)如果X属于M,则Y=2*x+1和Z=...

2214
来自专栏赵俊的Java专栏

最长上升连续子序列

1314
来自专栏程序生活

Python itertools的使用简介无限迭代器chain方法

用*放在一个可迭代对象前面可以将对象拆分成多个单元素,比如first=[['1','2','3','4','4'],['2','4','2']],如果把*放在f...

511
来自专栏老九学堂

【学习】Java微课堂之for循环

主要知识点 ? ? for循环注意要点 本讲视频中讲了for循环的要点以及三大循环的区别,主要笔记如下: 1.for循环是循环控制结构中使用最广泛的一种循环控制...

2896
来自专栏赵俊的Java专栏

最长上升子序列

1122

扫码关注云+社区