首页 > 解决方案 > 根据总和对具有多个值的字典进行排序

问题描述

我有一本这样的字典

({'Apple': [1,5,3,1,6], 'Banana': [9,12,4,5,1]})

我想从中创建一个排序列表,其中排序基于值的总和。

以下代码不起作用:

sorted_list = sorted(mylist.items(), key=lambda x: sum(x[1]), reverse=True)

它总是说TypeError: 'int' object is not callable

如果我忽略它的sum功能,但排序是基于列表中的第一个值。如果我尝试类似key=lambda x: (x[1][0]+x[1][1])的方法,它会总结列表中的前两个值并根据结果进行排序。因此,基于总和的排序确实有效,但不能使用sum函数,而只能通过手动添加元素。为什么呢?

标签: pythonlistdictionarysummultiple-value

解决方案


推荐阅读