如果我创建元组列表lst = [(0,5), (5,0), (2,2)]
并使用min(lst)
,则会返回(0,5)
。
python如何决定哪个元组最小?
是否使用元组的第一个元素做出决定?
假设元组中只有2个元素,我应该如何更改它以返回元组的最小总和?
答案 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)
。