Python中文
首页
教程
问答
标签
搜索
登录
注册
在字典列表中使用“reduce”
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在尝试编写一个简单的Python函数,该函数将键为<em>的所有值求和为</em>。我正在为这项任务做函数式编程。因此,我需要使用<em>列表理解</em>、<code>map</code>、<code>filter</code>或{<cd3>}。在这种情况下,我认为减少是一个合理的选择。在</p> <pre><code>def sum_favorites(msgs): num_favorites = reduce(lambda x, y: x["likes"] + y["likes"], msgs) return num_favorites content1 = {"likes": 32, ...} content2 = {"likes": 8, ...} content3 = {"likes": 16, ...} contents = [content1, content2, content3] print(sum_favorites(contents)) </code></pre> <p>当我实际运行代码时,问题就出现了。我似乎收到了这样的信息:<strong>TypeError:'int'对象不可订阅</strong>。对我来说,这个错误没有意义。如果<code>reduce</code>确实在迭代给定的参数,那么传递到lambda函数中的每个项都应该是一个字典,而且每个项中肯定都有一个<em>likes</em>键。问题是什么?这个Python错误到底意味着什么?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>根据reduce的具体实现方式,在reduce的第二次迭代中,传递给lambda的一个操作数将不是dict,而是到目前为止计算的总和。这给了你所看到的错误。在</p> <p>为了避免这种情况,您可以首先进行列表或生成器理解,从各种dict中提取“likes”处的所有值,然后减少这些dict上的<code>operator.add</code>。或者只使用sum。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
当用户用PYTHON设置一个或一个不带值的URL时,他们怎么能输入一个/a的代码呢?
8 回答
当用户登录到站点时,如何显示不同的导航栏
6 回答
当用户登录时,在Flask中向用户显示处理结果
7 回答
当用户的Flask会话结束时,我如何从Redis后端中移除所有Celery结果?
8 回答
当用户的Okta配置文件字段当前为blan时,更新该字段
5 回答
当用户的付款逾期2天时,从Django模型检索数据
5 回答
当用户的消息以问号结尾时,如何让机器人说些什么?
9 回答
当用户的系统上可能也安装了Python 2.7时,如何在用户的系统上运行Python 3脚本?
3 回答
当用户确定打印数量时,使用Matplotlib打印动画
10 回答
当用户离开时是否可以删除整个网页?
6 回答
当用户给出一个单词时如何打印?
2 回答
当用户继续更改TKin中的值(使用trace方法)时,使用Entry并更新输入的条目
10 回答
当用户编辑表单字段时,从Django时间字段中删除秒数
1 回答
当用户被更改时,消息不会来自web套接字
4 回答
当用户访问表单时,如何使表单为只读,而不具有更改权限
10 回答
当用户试图更改对象的值时,使用描述符类引发RuntimeError
4 回答
当用户调整GUI的大小时,是否有方法更改GUI内容的大小?
2 回答
当用户调整风的大小时,pythontkinter小部件的大小会不均匀
1 回答
当用户购买某个类别时,是否查找其他类别的销售?
9 回答
当用户转到上一页时,Django和芹菜插入操作
10 回答