itertools模块中的groupby方法比较实用,下面简要介绍一下:
如果将“aaaabbbbccccaaaa”按照字母出现的顺序进行分组,你会怎么做?使用groupby函数可以快速实现这个功能,
import itertools
m = itertools.groupby("aaaabbbbccccaaaa")
for k, v in m:
print(k, len(list(v)))
=================== RESTART: C:/Users/Desktop/test.py ==============
a 4
b 4
c 4
a 4
groupby支持两个参数,第一个参数是需要迭代的对象,第二个函数key代表分组依据,如果为none则表示使用迭代对象中的元素作为分组依据
import itertools
m = itertools.groupby("aaaabbbbccccaaaa", lambda x : x == 'a')
for k, v in m:
print(k, list(v))
=================== RESTART: C:/Users/Desktop/test.py ==============
True ['a', 'a', 'a', 'a']
False ['b', 'b', 'b', 'b', 'c', 'c', 'c', 'c']
True ['a', 'a', 'a', 'a']
哈哈,还是比较简单的,但是很实用,如果有这方面需要,使用它是比较方便而且性能很高。下一期,我们就讨论他在实际中的使用。有兴趣欢迎关注python小工具,一起学习python和pandas