Python itertools的使用

作者: 致Great | 来源:发表于2018-07-05 10:41 被阅读13次

简介

Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数。

无限迭代器

  • count
    count()会创建一个无限的迭代器,所以上述代码会打印出自然数序列,根本停不下来,只能按Ctrl+C退出。
import itertools
natuals = itertools.count(1)
for n in natuals:
    print n
...
1
2
3
...
  • cycle
    cycle()会把传入的一个序列无限重复下去
import itertools
cs = itertools.cycle('ABC') # 注意字符串也是序列的一种
for c in cs:
...     print c
...
'A'
'B'
'C'
'A'
'B'
'C'
...
  • repeat
    repeat()负责把一个元素无限重复下去,不过如果提供第二个参数就可以限定重复次数
ns = itertools.repeat('A', 10)
for n in ns:
...     print n
...
打印10次'A'
  • takewhile
    chain()可以把一组迭代对象串联起来,形成一个更大的迭代器
natuals = itertools.count(1)
ns = itertools.takewhile(lambda x: x <= 10, natuals)
for n in ns:
...     print n
...
打印出1到10

以上来自廖雪峰网站

chain方法

chain()可以把一组迭代对象串联起来,形成一个更大的迭代器:

这个方法自己平时用的比较多,下面讲一下关于chain的实例

  • 实例 1
for c in itertools.chain('ABC', 'XYZ'):
    print c
# 迭代效果:'A' 'B' 'C' 'X' 'Y' 'Z
  • 实例 2
import itertools
first=[['1','2','3','4','4'],['2','4','2']]
print(*first)
x=['abc','def']
print(*x)
for i in itertools.chain(*first):
    print(i)

输出为

['1', '2', '3', '4', '4'] ['2', '4', '2'] =>这里是两个元素
abc def =>这里是两个元素
1
2
3
4
4
2
4
2

*放在一个可迭代对象前面可以将对象拆分成多个单元素,比如first=[['1','2','3','4','4'],['2','4','2']],如果把*放在first前面,就会拆成['1','2','3','4','4']['2','4','2']这两个元素,然后在使用chain方法进行迭代

相关文章

  • python itertools 模块讲解

    1、介绍 itertools 是python的迭代器模块,itertools提供的工具相当高效且节省内存。 使用这...

  • python itertools 模块讲解

    1、介绍itertools 是python的迭代器模块,itertools提供的工具相当高效且节省内存。使用这些工...

  • Python itertools的使用

    简介 Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数。 无限迭代器 countco...

  • Python itertools

    Python itertools

  • python itertools

    PYTHON-进阶-ITERTOOLS模块小结

  • 2019-04-10

    Python中的分组函数(groupby、itertools)

  • Python高阶部分扩展 (collections ,iter

    Python高阶部分扩展 (collections ,itertools) python3 collection...

  • itertools

    python 模块itertools 提供了非常有用的用于操作迭代对象的函数。 首先,我们看看itertools...

  • Day16内建模块itertools&urllib

    itertools Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数。首先,我们看看...

  • itertools

    Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数。 首先,我们看看itertools...

网友评论

    本文标题:Python itertools的使用

    本文链接:https://www.haomeiwen.com/subject/fmiuuftx.html