我在这里显示了两个功能。 for_coordinates_outside_nest(tag_coord)
和defining_polygon_outside_nest(tag_data)
。我在这里尝试做的是,如果函数返回True,我想将函数返回的数字追加到ants_inroi_outsidenest
。代码工作正常。但是当我尝试打印ants_inroi_outsidenest
时,我得到了:
this-[971]
this-[971, 977]
this-[971, 977, 728]
this-[971, 977, 728, 740]
我想要的是单个列表this-[971,977,728,740]
。任何建议都将受到高度赞赏。
def for_coordinates_outside_nest(tag_coord):
poly = [1000,2100,80,1900]
bbPath = mplPath.Path(np.array([[poly[0],poly[1]],[poly[3],poly[1]],[poly[3],poly[2]],[poly[0],poly[2]]]))
if bbPath.contains_point((tag_coord)):
return True
else:
return False
def defining_polygon_outside_nest(tag_data):
ants_in_arena = []
ants_inroi_outsidenest = []
for id, (x,y) in tag_data:
ants_in_arena.append(id)
if for_coordinates_outside_nest((x,y)) is True:
ants_inroi_outsidenest.append(id)
print "this-" + str(ants_inroi_outsidenest)
return ants_inroi_outsidenest
答案 0 :(得分:1)
实际上,该列表包含您需要的元素。它是一个1-dim列表,其中包含您在循环中添加的值 你的问题只是打印功能在循环内。因此,每次向列表中添加元素时,它都会打印整个列表,其中包含第一个循环中的1个元素,第2个循环中的2个元素,......等等。 你应该这样做:
def defining_polygon_outside_nest(tag_data):
ants_in_arena = []
ants_inroi_outsidenest = []
for id, (x,y) in tag_data:
ants_in_arena.append(id)
if for_coordinates_outside_nest((x,y)) is True:
ants_inroi_outsidenest.append(id)
print "this-" + str(ants_inroi_outsidenest)
return ants_inroi_outsidenest