擅长:python、mysql、java
<pre><code>>>> from operator import itemgetter
>>> from itertools import groupby
>>> c1=[[1,2,3],[1,2,6],[7,8,6]]
>>> list(groupby(c1,itemgetter(0)))
[(1, <itertools._grouper object at 0xa6f8d0>), (7, <itertools._grouper object at 0xa6f890>)]
</code></pre>
<p>这只是说,将c1的元素按每个元素的第一项分组</p>
<p>还可以将结果展开为嵌套列表,以查看如何对项进行分组</p>
<pre><code>>>> [(x,list(y)) for x,y in (groupby(c1,itemgetter(0)))]
[(1, [[1, 2, 3], [1, 2, 6]]), (7, [[7, 8, 6]])]
</code></pre>
<p>要获取更改行,可以查看结果的第一个元素的长度</p>
<pre><code>>>> len(list(next(groupby(c1,itemgetter(0)))[1]))
2
</code></pre>