繁体   English   中英

获取元组列表中第二个元素的最近值

[英]get nearest value of second element in list of tuples

试图获得与我比较的值最接近的值的列表

示例列表

[('MK20G / MK20H', 7.1, 7.1, 31, 10), ('MK10G / MK10H', 9.3, 9.3, 18.5, 10)]

并比较值

1.34

结果应该是

('MK20G / MK20H', 7.1, 7.1, 31, 10) 

因为元素 1 和 2 最接近 1.34

但是当我的值为 7.5 时,它应该选择 ('MK10G / MK10H', 9.3, 9.3, 18.5, 10)

所以 >= 应该使用

我试过

nearest = min(value10, key=lambda x: (x, D))

但它似乎不起作用。 value10 保存 mt 元组,D 是要与之比较的值(本例中为 1.34)

如果可能的话,在选择之前获得元素 1 和 2 的最高值会很好我知道在我的示例列表中这些值是相等的,但可能会发生 2 个值不相同的情况,然后需要 2 个中的最高值

但是当我的值为 7.5 时,它应该选择 ('MK10G / MK10H', 9.3, 9.3, 18.5, 10)

所以 >= 应该使用

这基本上意味着您想要高于D的最低值。

假设my_list包含所有元组的列表。

my_list = [('MK20G / MK20H', 7.1, 7.1, 31, 10), ('MK10G / MK10H', 9.3, 9.3, 18.5, 10)]
D = 1.7
nearest = min([elem for elem in my_list if elem[1] >= D], key=lambda x: x[1])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM