设置 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))
我有一个数组。这个迭代器对象包括多个长度为 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))