擅长:python、mysql、java
<p>您可以使用<code>itertools.groupby</code>:</p>
<pre><code>import itertools
s = [(2,'x'),(-5,'y'),(-3,'x')]
final_data = [(a, sum(i[0] for i in list(b))) for a, b in itertools.groupby(sorted(s, key=lambda x:x[-1]), key=lambda x:x[-1])]
</code></pre>
<p>输出:</p>
<pre><code>[('x', -1), ('y', -5)]
</code></pre>
<p>编辑:使用最近编辑的数据:</p>
<pre><code>s = [(2,'x'),(-5,'y'),(-3,'x'),(7,'y'),(3,'z'),(6,'z')]
final_data = [(a, sum(i[0] for i in list(b))) for a, b in itertools.groupby(sorted(s, key=lambda x:x[-1]), key=lambda x:x[-1])]
</code></pre>
<p>输出:</p>
<pre><code>[('x', -1), ('y', 2), ('z', 9)]
</code></pre>