2016-07-10 123 views
-2

元组a('foo',1),('bar',2),('foo',2),('bar',3),我想每一个独特的密钥或a[0]每个值或a[1]的总和沿着名单的总和分组,所以:{'foo': 3, 'bar': 5} - 这样做W/O的一些快捷方式itertools蟒蛇配方:由元组

+1

1.快速相比呢? 2.为什么不使用itertools? – jonrsharpe

+0

下次你发现自己写了[python recipe:](http://stackoverflow.com/q/38233057/3001761),先自己做点什么。并注意http://meta.stackexchange.com/q/19190/248731 – jonrsharpe

回答

0

下应该做的伎俩没有itertools ...

pairs = [('foo',1),('bar',2),('foo',2),('bar',3)] 

def sum_pairs(pairs): 
    sums = {} 
    for pair in pairs: 
    sums.setdefault(pair[0], 0) 
    sums[pair[0]] += pair[1] 
    return sums.items() 

print sum_pairs(pairs)