擅长:python、mysql、java
<p>你的代码的问题是,你在所有子列表上循环,并保留整个列表中第二个项目的计数,这肯定会产生相同项目的重复结果。相反,您可以使用<code>zip()</code>函数获取第二列,然后使用<code>collections.Counter</code>计算第二列中的项数:</p>
<pre><code>In [3]: from collections import Counter
In [5]: Counter(zip(*a)[1]).items()
Out[5]: [('a', 3), ('b', 1)]
</code></pre>
<p>在python 3.X中:</p>
<pre><code>z = zip(*a)
next(z)
Counter(next(z)).items()
[('a', 3), ('b', 1)]
</code></pre>