栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在词典列表上使用“ reduce”

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在词典列表上使用“ reduce”

对我来说,这个错误是没有道理的。如果reduce确实是通过给定的参数进行迭代,则传递给lambda函数的每个项目都应该是一个字典

否,传递给lambda的 第一个
参数(对于除第一个调用之外的所有调用)是前一次调用到lambda的返回值。您的函数返回一个数字,因此将其

x
作为数字而不是字典进行调用。

有两种解决方法。可能更直接的一种是:

num_favorites = reduce(lambda x, y: x + y['likes'], msgs, 0)

0
是“初始化”参数减少,这提供了所述第一值
x
。现在在每个调用中,
x
是运行总和,
y
是下一个字典。

只是为了表明可以做到的另一种方法是:

result = reduce(lambda x, y: { 'likes': x['likes'] + y['likes'] }, msgs)num_favorites = result['likes']

likes
就像它的参数一样,这使得lambda的返回值成为带有键的字典,因此我们一直在使用相同的类型。在这种情况下,这是不必要和浪费的,但是如果您要聚集多个密钥,这可能是一种有趣的方法。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/634089.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号