设置 python 中最小的第三个值

Get set with smallest 3rd value in python

我有一个数组。这个迭代器对象包括多个长度为 3 的元组。我想选择第三个值最小的元组。

例如(我只是把它写成一个列表,但它不是一个列表)

a = [(1, 5, 4), (2, 5, 0.4), (3, 4, 0.4), (1, 9, 0.3)]

输出应该是:

(1, 9, 0.3)

使用 min 和自定义键获取第三个值

values = [(1, 5, 4), (2, 5, 0.4), (3, 4, 0.4), (1, 9, 0.3)]

min_tuple = min(values, key=lambda x: x[2])
print(min_tuple)  # (1, 9, 0.3)

你可以做一个具有线性复杂度的算法,它将在数组中迭代并使用 分钟函数

并转换成元组

代码:

def smallest(a):
    result = []
    for x in a:
        result.append(min(x))
    return result
a=[(1, 5, 4), (2, 5, 0.4), (3, 4, 0.4), (1, 9, 0.3)]
print(smallest(a)) #(1, 9, 0.3)
import functools
a = [(1, 5, 4), (2, 5, 0.4), (3, 4, 0.4), (1, 9, 0.3)]
print(functools.reduce(lambda c, m: m if m[2] < c[2] else c, a))