Well, again, Grasshopper has many automatic/intelligent features that scripting doesn’t.

What is happening in your loop is that the variable ‘divide’ is indeed receiving the result of DivideCurve(), but every time it loops, the data in the variable is replaced - so you only get the last result. If you need to collect the different results, you will first need to create an empty container, and then add (append) the results at every iteration.

```
objs = rs.GetObjects("choose curves") #input two lines
div_pts=[]
for i in range(len(objs)):
divide = rs.DivideCurve(objs[i], 10, True, True)
div_pts.append(divide)
```

The above will get you a nested list - a list of lists - each list having the divide points of each of the curves in ‘objs’. If you want to then draw lines between the corresponding items in each list (I’ll assume just two input curves for the moment so we can draw a line) it’s not too hard, but you need to use an advanced user trick or two. First, in order to simulate the results of your “flip matrix” GH component, we can use the really cool python function “zip” along with an asterisk which represents list or tuple “unpacking”… Zip “zips” together items from multiple lists; the ‘*’ “unpacks” each sublist in a nested list first so that zip can put together the corresponding items. The result will get you 11 lists of two corresponding points. Then you can iterate through those and make lines.

```
objs = rs.GetObjects("Choose curves",4, minimum_count=2, maximum_count=2)
div_pts=[]
for i in range(len(objs)):
divide = rs.DivideCurve(objs[i], 10, True, True)
div_pts.append(divide)
pairs=zip(*div_pts)
for item in pairs:
rs.AddLine(item[0],item[1])
```

HTH, --Mitch