I did few more works on output of list(contour)
to get an understanding about contour based on the answer provided above by mathematical.coffee.
1) I did a mistake on my test image. I thought it was a binary image while actually it was a grayscale image with some other colors also. ( Thanks to mathematical.coffee). So i changed image to pure black-and-white-only image so that i would get only one contour and tested again. This time, list(contour)
gave a result of 4 values which, when drawn on image, were four corners of that box.

So when we use 'cv.DrawContours' function, lines are drawn joining all these vertices. So i made an assumption that cv.FindContours stores the position of the vertices of contour which is actually a polygon.
2) To test again, i took another image which is a T-shape .

For this, i expect a list of 8 values which are 8 corners of T.

`list(contour)' prints following list which contains 10 values. (2 extra values may be due to errors in my drawing)
[(92, 58), (92, 108), (174, 108), (175, 109), (175, 239), (225, 239), (225, 109), (226, 108), (285, 108), (285, 58)]
This means cv.FindContours create cvseq object. Inside it stores the values as i assumed above.
3) Above examples finds only one contour. What will be the condition when multiple contours are found out? I didn't clearly understand the concept of multiple linked sequences as explained by mathematical.coffee. So to test that, i took third image.

Now cv.FindContours finds three contours. Remember, each contour is list of 4 corners of boxes. These three lists are stored in a single cvseq object and pointer points to first contour only, ie , list of vertices of first box only. So with above code, corners of only one box is drawn.
To get list of second vertices, we use the contour.h_next function ( Thanks to mathematical.coffee, i didn't know its function until now). Now it points to second box's contour. Thus we iterate through all list in it.
So i added a simple while loop as follows:
while contours:
print list(contours)
for i in list(contours):
cv.Circle(img,i,5,(0,0,255),3)
contours = contours.h_next()
And i got three list corresponding to three boxes' corners:
[(196, 237), (196, 279), (357, 279), (357, 237)]
[(141, 136), (141, 201), (346, 201), (346, 136)]
[(33, 39), (33, 92), (206, 92), (206, 39)]
And the output image :

So you can expect what will be output of a circle, "which has a large number of vertices".
Well, everything is simple now. I couldn't get a grasp of contour values. That is why, all this mess. Thanks.
UPDATE - 1:
More details about contour in new cv2
module have given here : Contours -1 : Getting Started
UPDATE - 2:
All these explanation is correct with respect to cv2.CHAIN_APPROX_SIMPLE. But if we use cv2.CHAIN_APPROX_NONE instead, we get all the points on the contour. It is explained in detail with examples in this article : Contours - 5 : Hierarchy