python itertools模块
各种花里胡哨 哦不 丰富好用的迭代方式,了解下:http://funhacks.net/2017/02/13/itertools/
什么不想打开?
提醒你一下:
常用的有 count(firstval = 0,step = 1) cycle(iterable) repeat(object,nums)
import itertools
nums = itertools.count()
for i in nums:
if i > 6:
break
print(i)
#这个会输出什么呢?
nums = itertools.count(10,2)
for i in nums:
if i > 20:
break
print(i)
#cycle就是循环迭代不停滴!!!比如我这里有字符串(可迭代对象)"周杰伦",那我就可以 嘿嘿 #算了改一下#用list做对象
strs = itertools.cycle(["周杰伦","jay","月半伦","周天王"])
sts_nums = 1
for i in strs:
sts_nums += 1
print("520"+i)
if sts_nums == 22:
break
#repeat 就比较简单啦就是不停滴
for item in itertools.repeat("周杰伦520",21):
print(item)
皮这一下很开心~
还有一些(较为复杂的迭代):
chain(iterable1, iterable2, iterable3, ...) #将不同的迭代对象放一起迭代,有种大家一个一个来蹦迪的感觉,但是我蹦完下台以后下一个胖友才能来蹦跶哈~
compress(data, selectors) #具有筛选功能的迭代,比如。。。
for i in itertools.compress(["周杰伦","周天王","胖伦","Jay"],[1,1,0,1])
dropwhile(predicate, iterable) #跟compress有异曲同工之妙,都可以筛选,这里的筛选呢是你写一个函数去判断
list(itertools.dropwhile(lambda x: x>5, [1, 7, 6, 2, 1]))
不写了,lay了!