python迭代器有哪些_必须知道的7个最有用的Python迭代器

面向对象的编程语言中提供了方便的容器,例如Map、List、Queue等,并且每类容器都是可迭代的,Python也不例外。Python的容器主要有列表、元组、字典和集合,它们也是可迭代的。意味着你可以调用迭代器函数iter()来遍历各种容器。在迭代器遍历容器的过程中,通常是使用next()函数来遍历迭代器,使用for循环来不断的从可迭代对象中实例化迭代器。本文主要介绍7个最有用的Python迭代器。

count

count()与range()类似,但是count()没有界限。count() 函数需要一个起始值和一个可选的步长,输出无穷大的值。count()特别适合遍历输出一个值直到满足特定条件。以map容器为例,输出n*n<1000的所有值:

cycle

顾名思义,cycle()函数是循环遍历的迭代器。示例中是遍历List,为List中每个数值添加标签,标签的范围由range()给出:

chain

chain()迭代器可以将多个可迭代的对象连接在一起,以2个List连接为例:

starmap

starmap()将一个函数和一个可迭代的容器作为参数:

itertools.starmap(function, iterable)

starmap与map非常相似,不同之处在于,starmap允许输入函数接受已经分组在可迭代容器中的多个参数,示例如下:

product

product()迭代器在参数中产生可迭代项的笛卡尔积,等效于使用多个嵌套循环,一般用来为所有项组合计算某些值。可选的repeat参数允许计算其自身的迭代笛卡尔积,例如:

islice

islice()用于从迭代器返回特定的切片。与一般的slice()函数非常相似。但是,slice()是对列表、元组的浅拷贝。与slice()相比,islice(iterable,start,stop,[step])除了iterable之外,语法几乎与slice()完全相同,islice返回iterable,因此速度更快,因为元素是动态生成的。如果考虑程序的内存和效率,推荐使用islice()。需要注意的是islice()不能使用负索引。、

accumulate

accumulate()可以迭代地将特定的二进制函数应用于列表元素,并将聚合后的新值放在新的列表中。

总结

Python并不是一种函数式语言,但借用了许多的函数概念。通过将这些迭代器与容器相结合,极大的丰富了语言功能,简化了代码编写,给用户提供了一个快速高效的编写环境。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值