作者bob123 ()
看板Python
标题Re: [问题] list相同key数值相加
时间Sat Jun 16 03:28:13 2012
※ 引述《ntasop (kuli)》之铭言:
: [['102C', '1', '0'], ['1040', '0', '250'], ['1042', '5', '10'],
: ['1040', '0', '1000'], ['1090', '0', '40'], ['1090', '['1090', '20', '0'],
: ['102C' '20', '0'], ['1142', '0', '21000'],......]
: 真的不好意思写不出来,所以来请教高手,
: 有比较快的方法把上面list相同key1後key2,key3相加?
# version > 2.5
from collections import defaultdict
a = [
['102C', '1', '0'],
['1040', '0', '250'],
['1042', '5', '10'],
['1040', '0', '1000'],
['1090', '0', '40'],
['1090', '20', '0'],
['102C', '20', '0'],
['1142', '0', '21000'],
]
d = defaultdict(lambda : [0,0])
for k,v0,v1 in a:
d[k] = [d[k][0]+int(v0),d[k][1]+int(v1)]
d = dict(d)
我的话会先用这种直白作法...应该还满好理解的
其实用基本dict,for,if也都可以刻出一样的
建议您有时候还是自己先刻刻看比较好...
po上来有问题的话相信版上各位大大会帮忙指正观念
--
~(291705206)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.255.22.214
1F:推 bowans:原来第一个是key... 我理解错问题了XD 06/16 13:25