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
我有一个这样的列表:
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