擅长:python、mysql、java
<p>让我们看看。。。在</p>
<pre><code>import itertools
l = [('A01', 'ACRB'), ('A01', 'TBL'), ('A02', 'TBL'), ('A03', 'GRF')]
def mygrouping(l):
speclist = list(set(i[1] for i in l))
yield tuple(speclist)
l.sort()
gr = itertools.groupby(l, lambda i:i[0]) # i[0] is the site; group by that...
for site, items in gr:
counts = [0] * len(speclist)
for _site, species in items:
counts[speclist.index(species)] += 1
yield site, tuple(counts)
print list(mygrouping(l))
</code></pre>
<p>另一个使用namedtuples的解决方案是</p>
^{pr2}$
<p>展示的东西我会给你的。在</p>