python 如果数组中的元素不与输入重叠且彼此不重叠,则查找数组中的元素

python find the elements in array if it doesn't overlap an input and within each others

我有一个这样的列表:

data [["m1",10,30,10**-10],["m2",22,40,10**-9],["m3",30,50,10**-8],["m4",45,65,10**-7]]

输入是:

    [10,20]

我想获得一个元素列表,这些元素 1) 不与输入坐标重叠,并且 2) 彼此不重叠

1)      ["m2",22,40,10**-9],["m3",30,50,10**-8],["m4",45,65,10**-7]

如果有重叠,我需要选择最后一列最低的元素

所以最终输出将是

["m2",22,40,10**-9],["m4",45,65,10**-7]

重叠功能已完成,但我不知道如何获得此输出。

所以我为你做了一个小算法,假设你知道如何检查重叠,可以确保你得到你想要的。

  • 定义最终结果数组
  • 对于数据中的每个 item1
  • 检查项目是否与输入重叠

    if yes: - for each item2 in final result - check if item1 overlap with item2

    if no: - add item1 in final result if yes: - check if last value of item2 smaller than last value of item1 if yes: - remove item1 from final list, - add item2 to final list