我有一个数据列表如下:
from shapely.geometry import box
data = [box(1,2,3,4), box(4,5,6,7), box(1,2,3,4)]
sublists = [A,B,C]
“数据”列表包含以下子列表:
A = box(1,2,3,4)
B = box(4,5,6,7)
C = box(1,2,3,4)
我要检查子列表是否相交。如果相交,它们应该放在一个元组中;如果不相交,它们应该放在不同的元组中。预期结果是:
result = [(A,C), (B)]
怎么做?你知道吗
我试着这样做:
results = []
for p,c in zip(data,sub_lists):
for x in data:
if p.intersects(x): ##.intersects return true if they overlap else false
results.append(c)
print results
无需下载
shapely
,我认为您想要对列表执行的操作可以使用字符串(或整数)进行复制:用
intersects
测试替换i in data
。results
的第一个子列表包含测试为真的data1
的元素。第二个子列表包含它为false的元素。你知道吗你的问题有点混乱,因为
data
和sublists
似乎包含相同的元素。所以也许你不是在测试A
是否在data
(或者与data
的元素相交),而是测试A
是否与[A,B,C]
的其他元素相交,等等在任何情况下,收集结果的关键是在
results
中有两个(或更多)插槽,您可以根据测试在其中放置i
。results
也可以是字典,也可以是两个不同的变量。e、 g.results={'found':[],'lost':[]}
。你知道吗我们需要在考试上做更多的工作吗?你知道吗
相关问题 更多 >
编程相关推荐