[英]Appending elements to empty list in python
我這里顯示了兩個功能。 for_coordinates_outside_nest(tag_coord)
和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
實際上,列表包含您需要的元素。 這是一維列表,其中包含您在循環中添加的值。
您的問題只是打印功能在循環內部。 因此,每次將元素添加到列表時,它都會打印整個列表,該列表在第一個循環中包含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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.