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

相关文章

来自专栏大闲人柴毛毛

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

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

4334
来自专栏从零开始学 Web 前端

从零开始学 Web 之 JS 高级(三)apply与call,bind,闭包和沙箱

不同的是传入参数时,apply 有两个参数,第二个参数是数组;call 从第二个参数开始是调用其的函数的所有参数。

823
来自专栏杨龙飞前端

js中的valueOf与toString

2704
来自专栏TungHsu

这或许是对小白最友好的python入门了吧——14,遍历字典

同列表元组一样,字典也能够遍历,但是和列表元组不一样的是,字典遍历分三个部分:遍历键值对、遍历键、遍历值 首先我们新建一个字典: score = {"engl...

2153
来自专栏黑泽君的专栏

函数和方法的区别

653
来自专栏我和我大前端的故事

啊,函数呐!!!

一份需要你补充完整的函数导图!我还是一个初学者,这篇文章是我所知道的所有关于函数的知识,如有不完善或者错误,希望能够在评论下方指出,哈哈哈,大神勿喷。

742
来自专栏java初学

final和static关键字

34611
来自专栏Java进阶之路

java中常用正则表达式

1613
来自专栏小白的技术客栈

Python运算符

今天开始讲解Python的运算符,这一节比较简单,知识点不多。 上文回顾 今天回顾一下昨天的文章主要讲了哪些知识点: Python是一门动态的强类型语言; 变量...

4378
来自专栏技术博客

C#简单的面试题目(一)

1.简述private、protected、public、internal修饰符的访问权限。

1083

扫码关注云+社区