使用min函数从元组列表中获取多个元组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用min函数从元组列表中获取多个元组相关的知识,希望对你有一定的参考价值。

我有一个看起来像这样的列表

mylist = [('Part1',5,5),('Part2',7,7),('Part3',11,9),('Part4',45,45),('part5',5,5)]

我正在寻找所有数字都最接近我的输入的元组

现在我正在使用此代码

result = min([x for x in mylist if x[1] >= 4 and x[2] >= 4])

我得到的结果是

('part5',5,5)

但是我正在寻找看起来更像的结果

[('Part1',5,5),('part5',5,5)]

并且如果其中有更多的元组(在此示例中,我有2个,但可能更多),那么我想取回所有的元组

整个代码

mylist = [('Part1', 5, 5), ('Part2', 7, 7), ('Part3', 11, 9), ('Part4', 45, 45), ('part5', 5, 5)]
result = min([x for x in mylist if x[1] >= 4 and x[2] >= 4])
print(result)
答案
threshold = 4
mylist = [('Part1', 5, 5), ('Part2', 7, 7), ('Part3', 11, 9), ('Part4', 45, 45), ('part5', 5, 5)]

filtered = [x for x in mylist if x[1] >= threshold and x[2] >= threshold]
keyfunc = lambda x: x[1]
my_min = keyfunc(min(filtered, key=keyfunc))

result = [v for v in filtered if keyfunc(v)==my_min]


# [('Part1', 5, 5), ('part5', 5, 5)]

以上是关于使用min函数从元组列表中获取多个元组的主要内容,如果未能解决你的问题,请参考以下文章

从元组列表中获取具有“NaN”的元组索引

从元组列表中返回具有最小 y 值的元组

如何使用子元组从元组创建列表?

从元组的元组中创建一个列表

(Swift)如何从元组数组[(Date, MyClass)]中获取元组元素(Date, MyClass)的索引?

如何有条件地从元组列表中删除元素?