回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我是新的编程,所以这个代码可能是相当垃圾。无论如何,我要做的是取两个列表(xy1,xy2),它们包含一个矩形的角点,看它们是否与其他矩形重叠。我使用的格式是x1,y1在数组xy1中,x2,y2在数组xy2中。到目前为止,我只使用x轴,所以两个数组中的每个其他条目。我的问题是,当我找到那些重叠的并删除它们时,我会得到一个索引错误。我相信这个问题与使用del和我的for max循环有关,我使用数组的len得到这个循环。如果没有重叠并触发删除的调用,代码有时也可以工作。如有任何建议,我们将不胜感激。谢谢</p>
<pre><code>#1,3 are x cords for first rect, 5 and 8 are x cords for second rect
xy1=[1,6,5,12,1,17]
xy2=[3,9,8,16,4,19]
def make(xy1,xy2):
count0=0
for count1 in range(count0,len(xy1),2):
for count2 in range(count0,len(xy2),2):
if xy1[count1] in range(xy1[count2],xy2[count2]) and not (count1==count2):
xy1=removed(xy1,count1)
xy2=removed(xy2,count1)
return xy1,xy2
def removed(xy1,count1):
#removes the x,y that was overlapped along with the other 2 corners of the rect
del xy1[count1:count1+2]
return xy1
make(xy1,xy2)
print xy1,xy2
</code></pre>