【发布时间】:2018-09-09 23:39:47
【问题描述】:
我得到一个数据的组合列表并使用 zip 函数对其进行排序
comb_list = sorted(zip(score_list, move_list), key = lambda pair: pair[0], reverse = True)
输出是这样的
a = [(3, (5, 4, False)), (3, (6, 4, False)), (2, (5, 1, False)),
(1, (6, 2, False)), (-1, (6, 2, False))]
我想按元组中的第一个元素(在列表中)进行排序,找到最大值,然后输出元组中的第二个元素。这里最大值为3,输出为
[(5, 4, False), (6, 4, False)]
或者如果我有
a = [(3, (5, 4, False)), (2, (5, 1, False)), (1, (6, 2, False)), (-1, (6, 2, False))]
输出将是
[(5, 4, False)]
【问题讨论】:
-
如果你只是找到最大值,为什么要排序?
-
您显然知道如何将
key函数与sorted一起使用,因为您是在现有代码中这样做的。如果你能写pair[0],你肯定知道如何写pair[1]。那么……您坚持哪一部分? -
对不起,其实我是python新手...只能得到(5, 4, False),不能得到[(5, 4, False), (6, 4, False)],虽然它也有最大键。
-
好的,所以edit 的问题要尽可能多地写,然后解释你卡在哪里,而不是让我们猜测。你得到一堆错误答案的原因是你的问题不清楚。
标签: python list sorting lambda tuples