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

相关文章

来自专栏数据结构与算法

29:统计字符数

29:统计字符数 总时间限制: 1000ms 内存限制: 65536kB描述 给定一个由a-z这26个字符组成的字符串,统计其中哪个字符出现的次数最多。 ...

4086
来自专栏码云1024

JAVA 面向对象

4526
来自专栏大闲人柴毛毛

稳扎稳打JavaScript(三)——创建对象的几种方式

有了前面两篇文章的基础后,我们来谈一谈在JS中创建对象的几种方式。 建议大家先预习下先前的两篇博客: 稳扎稳打JavaScript(一)——作用域链 ...

4474
来自专栏运维技术迷

PHP-函数

创建函数的语法 //function创建函数的关键字 function functionName() { 要执行的代码; } 函数准则 函数的名称应该显示出他的...

3267
来自专栏锦小年的博客

Python学习笔记3.2-python内置函数大全

学习python不可避免的首先要了解python的内置函数,熟悉了这些以后可以给编程带来很大的方便。 1、数学运算类 函数名 函数功能 备注 abs...

2609
来自专栏MasiMaro 的技术博文

C++类的构造函数与析构函数

C++中每个类都有其构造与析构函数,它们负责对象的创建和对象的清理和回收,即使我们不写这两个,编译器也会默认为我们提供这些构造函数。下面仍然是通过反汇编的方式来...

1421
来自专栏运维技术迷

连仕彤博客[Python笔记] locals() 函数

1573
来自专栏杨龙飞前端

js中的valueOf与toString

2754
来自专栏一名合格java开发的自我修养

python类与对象基本语法

对象是面向对象编程的核心,在使用对象的过程中,为了将具有共同特征和行为的一组对象抽象定义,提出了另外一个新的概念——类。

993
来自专栏赵俊的Java专栏

equals 和 == 到底有什么区别?

2153

扫码关注云+社区

领取腾讯云代金券