Python 对元组列表进行排序,元组的第二个元素是列表
我有一个元组列表Python 对元组列表进行排序,元组的第二个元素是列表,python,list,sorting,tuples,Python,List,Sorting,Tuples,我有一个元组列表 [("Alice", [1, 2, 1, 1, 1, 1]), ("Bob", [3, 1, 5, 3, 2, 5]), ("Clare", [2, 3, 2, 2, 4, 2]), ("Dennis", [5, 4, 4, 4, 3, 4]), ("Eva", [4, 5, 3, 5, 5, 3])] 我想要输出: [("Alice", [1, 2, 1, 1, 1, 1]), ("Clare", [2, 3, 2, 2, 4, 2]), ("Bob", [3, 1, 5,
[("Alice", [1, 2, 1, 1, 1, 1]), ("Bob", [3, 1, 5, 3, 2, 5]), ("Clare", [2, 3, 2, 2, 4, 2]), ("Dennis", [5, 4, 4, 4, 3, 4]), ("Eva", [4, 5, 3, 5, 5, 3])]
我想要输出:
[("Alice", [1, 2, 1, 1, 1, 1]), ("Clare", [2, 3, 2, 2, 4, 2]), ("Bob", [3, 1, 5, 3, 2, 5]),("Dennis", [5, 4, 4, 4, 3, 4]), ("Eva", [4, 5, 3, 5, 5, 3])]
我希望通过基于元组中列表的总和对元组进行排序来实现这一点
目前我有:
c = sorted(b, key=lambda x: (x[0], sum(x[1])))
return c
任何帮助都将不胜感激我认为关键应该是列表的总和,而不是元组,这意味着:
c = sorted(b, key=lambda x: sum(x[1]))
我认为键应该是列表的和,而不是元组,这意味着:
c = sorted(b, key=lambda x: sum(x[1]))
如果需要进行排序(使用排序结果更新列表):
如果您想要一个包含排序结果的新列表,您可以按照@Reut Sharabani的建议进行操作。如果您需要排序(使用排序结果更新列表):
如果你想要一个带有排序结果的新列表,你可以按照@Reut Sharabani的建议来做。你知道
(x[0],sum(x[1])
做什么吗?你知道(x[0],sum(x[1])做什么吗?
x = [("Alice", [1, 2, 1, 1, 1, 1]), ("Bob", [3, 1, 5, 3, 2, 5]), ("Clare", [2, 3, 2, 2, 4, 2]), ("Dennis", [5, 4, 4, 4, 3, 4]), ("Eva", [4, 5, 3, 5, 5, 3])]
x.sort(key=lambda i: sum(i[1]))