# Data structure in python containing shapes corners and centroids

I am having a lot of troubles in python programming, mostly because I am a beginner.

I first applied findContours to a picture and I have to save the retrieved shape corners and the shapes centroids in data structure for latter modifications.

I created a data structure for the shapes that looks like this (the number of shapes is not known):

```
Shapes = [[shape1-Corners],
[shape2-Corners],
[shape3-Corners],
[...]
[shapeN-Corners]]
```

and another one containing the centers (again the number of shapes is not known):

```
Centers = [x0, y0, x1, y1, x2, y2,...,xn, yn]
```

Now I have to access the data in those two structures and perform the pointPolygonTest to check if a shape is inside another one, but OF COURSE it's really hard (because I understand that this solution with two data structure is not really the best)

That's the code I wrote for accessing the data structure:

```
for k in range(0, len(centers), 2):
nowcx = centers[k]
nowcy = centers[k+1]
for j in range(len(shapes)):
if cv2.pointPolygonTest(shapes[j],(nowcx, nowcy),False)==1:
print "inside"
else:
print "outside"
```

For easier understanding, this is the picture with the centroids in red. You can see that thare are 3 shapes: triangle, square and pentagon. So the data structures contain 3 records for the 3 shapes and 6 elements for the 3 centroids.

https://www.dropbox.com/s/vibl0h0y4ses1za/graph.png

The output gives me 9 comparisons, when they should be actually 3:

- triangle against square -> outside
- triangle against pentagon -> inside
- square againstr pentagon -> inside

That's the output:

```
inside
outside
inside
outside
inside
inside
inside
outside
inside
```

What am I doing wrong? Please help me. Thanks in advance!!