簡體   English   中英

將元素追加到python中的空列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM