Python:使用自定义函数的最少列表

时间:2018-03-11 00:31:15

标签: python python-3.x list

如果我创建元组列表lst = [(0,5), (5,0), (2,2)]并使用min(lst),则会返回(0,5)

python如何决定哪个元组最小?

是否使用元组的第一个元素做出决定?

假设元组中只有2个元素,我应该如何更改它以返回元组的最小总和?

1 个答案:

答案 0 :(得分:2)

您可以将自定义密钥与min一起使用。

lst = [(0,5), (5,0), (2,2)]

res = min(lst, key=lambda x: sum(x))
# (2, 2)

要了解min(lst)的一般情况,请参阅How does the min/max function on a nested list work?

如果您希望检索按第一个元素排序的最小总和的元素,您可以指定一个元组键:

lst2 = [(0,5), (5,0), (2,2), (1,3)]

res = min(lst2, key=lambda x: (sum(x), x[0]))
# (1, 3)

不使用元组键,上面的结果将是(2,2)