2017-08-30 21 views
0

ここには2つの関数があります。 for_coordinates_outside_nest(tag_coord)およびdefining_polygon_outside_nest(tag_data)である。私がここでやろうとしているのは、関数がTrueを返す場合、関数によって返された数値をants_inroi_outsidenestに追加したいと思います。コードは正常に動作します。私はants_inroi_outsidenestを印刷しようとすると、しかし、私は取得しています:要素を空のリストにPythonで追加する

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

@Chris_Randsをスニペット、それは同じことを印刷します。 – mudaliyar

+0

私は、あなたが望む出力が得られると思う編集前の元のコードのようにインデントしなければならないということです。それぞれの繰り返しではなく、ループの最後に 'print'を書いておきたいと思います。 –

答えて

1

実際には、リストには必要な要素が含まれています。ループに追加する値を含む1次元のリストです。
問題は、印刷機能がループ内にあることだけです。したがって、リストに要素を追加するたびに、最初のループに1つの要素、2番目に2つの要素、...などのリスト全体が印刷されます。
あなたがこれを行う必要があります:あなた `print`文があなたのコードに比べて、さらにインデントされている必要があり

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 
関連する問題