将元素附加到python中的空列表

时间:2017-08-30 13:04:46

标签: python list function append

我在这里显示了两个功能。 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 个答案:

答案 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