使用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函数从元组列表中获取多个元组的主要内容,如果未能解决你的问题,请参考以下文章