Python3之内建模块itertools

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

  首先,我们看看itertools提供的几个无限迭代器

>>> import itertools
>>> natuals=itertools.count(1)
>>> for n in natuals:
...   print(n)
...
1
2
3
...

   因为count()会创建一个无限迭代器,所以上述代码会打印出自然数序列,根本停不下来,只能按Ctrl+c退出

  cycle()会把传入的一个序列无限重复下去:

>>> cs=itertools.cycle('abc')
>>> for c in cs:
...   print(c)
...
a
b
c
a
b
c
...

   同样停不下来

  repeat()负责把一个元素无限重复下去,不过如果提供第二个参数就可以限定重复次数

>>> ns=itertools.repeat('A',3)
>>> for n in ns:
...   print(n)
... 
A
A
A

   无限序列只有在for迭代时才会无限地迭代下去,如果只是创建了一个迭代对象,它不会事先把无限个元素生成出来,事实上也不可能在内存中创建无限多个元素。

  

猜你喜欢

转载自www.cnblogs.com/minseo/p/11224092.html