result = [[188, 260, 609, 398],
[97, 471, 162, 496],
[254, 472, 569, 492],
[96, 518, 148, 545],
[256, 522, 381, 562]]
要求将result进行分组,条件是:
如果每个子元素中的第2个和第4个元素区间,存在交叉,即max(a[1], b[1) <min(a[3], b[3])(a, b为列表中的任一子列表),则将该两个子列表,归为一组。
结果为:
[
[[188, 260, 609, 398]], #260-398与下面的区间没有交叉,独立一组
[[96, 518, 148, 545]], #518-545与下面的区间没有交叉,独立一组
[[97, 471, 162, 496], [254, 472, 569, 492]], #471-496的区间,与472-492的区间存在交叉,
[[256, 522, 381, 562]] #522到562的区间存在交叉
]
#!/usr/bin/env python
result = [[188, 260, 609, 398],
[97, 471, 162, 496],
[254, 472, 569, 492],
[96, 518, 148, 545],
[256, 522, 381, 562]]
# 不符合的列表
list1 = []
#遍历每一个列表,用 for..in
for i in result:
#用元组取出第2个和第4个元素,可以自动的设备最大值与最小值的排序
li = (i[1],i[3])
li1 = (i[0],i[2])
if li[0] > li1[0] and li[1] > li1[1] :
pass
else:
result.remove(i)
list1.append(i)
print(result)
print(list1)
简简单单的编程一步步开始