擅长:python、mysql、java
<p>如前所述,您可以使用<code>collections.Counter</code>,因为这是一种显而易见的方法,或者您可以使用<code>itertools.groupby</code>或{<cd2>}和{<cd1>}的组合</p>
<ol>
<li><p>只要<code>itertools.groupby</code></p>
<pre><code>>>> from itertools import groupby
>>> a, b = [list(g) for _, g in groupby(d.values(), type)]
>>> {k: len(list(g)) for k, g in groupby(sorted(a[0] + b))}
{'NTS': 1, 'VAL': 1, 'PRS': 1, 'MRS': 2}
</code></pre></li>
<li><p><code>itertools.groupby</code>和{<cd1>}</p>
<pre><code>>>> from itertools import groupby
>>> a, b = [list(g) for _, g in groupby(d.values(), type)]
>>> dict(Counter(a[0] + b))
{'NTS': 1, 'VAL': 1, 'PRS': 1, 'MRS': 2}
</code></pre></li>
</ol>
<p>这只是解决了OP存在的问题,但并不健壮。在</p>