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 条评论
登录 后参与评论

相关文章

来自专栏吴伟祥

【数据结构】务实篇 原

                                                             还有非线性结构(树、图等)。

603
来自专栏苦逼的码农

shell编程 --- 一些简单的运算符

今天讲讲shell编程中的运算符。学过例如c,java等语言的人可能都知道运算符是啥个东东,也知道如何使用各种运算符。不过,shell的运算符和其他大部分编程语...

622
来自专栏Crossin的编程教室

【Python 第72课】map 函数

来看两个问题: 1. 假设有一个数列,如何把其中每一个元素都翻倍? 2. 假设有两个数列,如何求和? 第一个问题,普通程序员大概会这么写: lst_1 = [...

29010
来自专栏WindCoder

《简明 Python 教程》学习笔记-控制流

1.为内建的raw_input函数提供一个字符串,这个字符串被打印在屏幕上,然后等待用户的输入。一旦我们输入一些东西,然后按回车键之后,函数返回输入。对于raw...

470
来自专栏Python小屋

微课系列(三):Python列表中存储的是元素的引用

技术要点:在Python中,变量不直接存储值,而是存储值的引用。同样,在列表、元组、字典、集合等容器类对象中也是存储的元素值的引用。

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

【Java学习笔记之九】java二维数组及其多维数组的内存应用拓展延伸

多维数组声明 数据类型[][] 数组名称; 数据类型[] 数组名称[]; 数据类型数组名称[][]; 以上三种语法在声明二维数组时的功能是等价的。同理...

2855
来自专栏大闲人柴毛毛

稳扎稳打JS——自由变量

自由变量的作用域在程序运行前就已经确定! 自由变量相当于Java中的全局变量,它在外层作用域中声明,但在内层作用域中使用,如下所示: var a = 1; f...

3447
来自专栏书山有路勤为径

同字符词语分组

已知一组字符串,将所有anagram(由颠倒字母顺序而构成的字)放到一起输出。 例如:["eat", "tea", "tan", "ate", "nat", ...

621
来自专栏GreenLeaves

C#核编之系统数据类型和相应的C#关键字

和任何编程语言一样,C#定义了一组用于表示局部变量、成员变量、返回值以及输入参数的基本数据类型。然而,与其他编程语言不同的是,这些关键字不只是编译器能识别的标记...

1828
来自专栏cs

python的函数

2564

扫码关注云+社区