解决方案使用itertools.chain.from_iterable
, itertools.groupby
and sum
功能:
import itertools, operator
tuples = [
[('2017-04-11', '2000000.00'), ('2017-04-12', '1000000.00'), ('2017-04-13', '3000000.00')],
[('2017-04-12', '472943.00'), ('2017-04-13', '1000000.00')]
]
result = [(k, "%.2f" % sum(float(t[1]) for t in g))
for k,g in itertools.groupby(sorted(itertools.chain.from_iterable(tuples)), operator.itemgetter(0))]
print(result)
输出:
[('2017-04-11', '2000000.00'), ('2017-04-12', '1472943.00'), ('2017-04-13', '4000000.00')]