[英]How to check if list item sits between tuples in another list?
当另一个列表中的项目在数字上介于它们之间时,我试图返回列表中的一对元组。 我浏览了该网站以寻求帮助,但我无法找到适合我/适用的解决方案。
首先考虑以下两个列表:
my_list = [1.5, 1.2, 1.1]
min_max = [(1.1, 1.4), (1.0, 1.3), (1.6, 1.8)]
我需要my_list中的每个项目遍历min_max列表中的每对元组,当它位于该范围内时返回一对。 使用来自my_list的数据,它将返回:
(1.1, 1.4)
(1.0, 1.3)
请注意,虽然 1.2 和 1.1 都介于 (1.0, 1.3) 之间,但我只需要它返回一次。 进步:当使用lambda function 固定范围时,我可以遍历列表,我尝试使用列表迭代扩展它,但我无法让它工作
list_return = filter(lambda x: 1.1 <= x <= 1.5, my_list)
[i for i in my_list]
print (list_return)
我已经尝试了各种变化,我开始怀疑我是否正确地接近这个?
似乎您一直在尝试遍历my_list
,但这更容易遍历min_max
并检查my_list
中的任何值是否在每对之间。 这对我有用。
result = [(a, b) for a, b in min_max if any(a <= item <= b for item in my_list)]
print(result)
我得到
[(1.1, 1.4), (1.0, 1.3)]
你可以做
my_list = [1.5, 1.2, 1.1]
min_max = [(1.1, 1.4), (1.0, 1.3), (1.6, 1.8)]
for i in[i for i in min_max if list(filter(lambda x: min(i) <= x <= max(i), my_list))]:
print(i)
那将 output
(1.1, 1.4)
(1.0, 1.3)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.