首页 > 解决方案 > 实现 for 和 if 在 reduce 函数中

问题描述

list of object我想知道如何从使用 reduce 函数中获取特定的键值。

假设我将一个对象列表传递给 reduce 函数,每个对象都有一个键number和值some integer,所以I want a sum of all values

样本数据就像

result = [{'number':1},{`number`:2},{'number':3}]

所以在reduce中我有代码在哪里key结果和value[objects,..]我应该如何实现这一点?

reduce = Code(
    """
    function(key,value)
    {
        return Array.sum(value);
    }
    """
)

标签: python-3.xmapreduce

解决方案


from functools import reduce
result = [{'number':1},{"number":2},{'number':3}]
c = reduce(lambda x,y:{"number":x['number']+y['number']}, result)
print(c)

"you can also use list comprehensions"

target = sum(i['number'] for i in result)
print(dict(number=target))

推荐阅读