介绍
今天介绍一个很强大的模块,而且是python自带的,那就是itertools迭代器模块。
使用
使用起来很简单,先导入模块
import itertools
下面,我们通过一些例子边学边练
三个无限迭代器
先告诉大家 control + C 可以强制停止程序哦
1.count()
num = itertools.count(10)
for i in num:
print(i)
# 10
# 11
# 12
# 13
# 以此类推,无穷无尽
2.cycle()
letter = itertools.cycle('ABC')
for i in letter:
print(i)
# A
# B
# C
# A
# B
# 依次循环,无穷无尽
3.repeat()
rp = itertools.repeat('X')
for i in rp:
print(i)
# X
# X
# X
# 依次类推,无穷无尽
rp2 = itertools.repeat('X', 2) # 限制2次
for i in rp2:
print(i)
# X
# X
想要限制迭代的次数还有一个办法,就是使用takewhile
num2 = itertools.takewhile(lambda x: x < 15, num)
list(num2)
# [10,11,12,13,14]
chain()
可以用来把几个迭代器合起来,构成一整个迭代器
for c in itertools.chain('AB', 'CD'):
print(c)
# A
# B
# C
# D
groupby()
可以把重复的元素group起来
for key, group in itertools.groupby('AAABBCCB'):
print(key, list(group))
# A ['A', 'A', 'A']
# B ['B', 'B', 'B]
# C ['C', 'C']
# 注意这里是区分大小写的,如果要忽略
# 请使用 itertools.groupby('AAABBCCB', lambda c: c.upper())