擅长:python、mysql、java
<p>在时间和空间方面,这可能不是最佳的解决方案,但对于任何输入都是可扩展的,并且任何人都可以清楚地理解;我不想使用python列表理解来让它更清楚:</p>
<pre><code>numbers = [['R21', 120], ['R21', 120], ['R23', 200]]
def merge(nums):
new = []
checked = []
for i in range(len(nums)):
if nums[i][0] in checked:
continue
target = nums[i]
sm = target[1]
for n in nums[i+1:]:
if n[0] == target[0]:
sm += n[1]
new.append([target[0], sum])
checked.append(target[0])
return new
print(merge(numbers))
</code></pre>
<p>输出:</p>
<pre><code>[['R21', 240], ['R23', 200]]
</code></pre>