On 04/08/12 20:44, Alonzo Quijote wrote:

There must be a good reason that the responders use a tmp variable like this?
But I notice that the same effects can be obtained with:

def setValueAtPosition2(list, pos, value):
      for i in pos[:-1]:
          list = list[i]
      list[pos[-1]] = value

Is there something wrong with this latter approach?


Not for the specific case but the problem comes because you lost the reference to the original list which is usually a bad idea, especially if you decide you need to do anything with it.


2. Another response observes that the function can be defined recursively like 
this:
Are the non-recursive solutions better?

Define "better".
Recursive functions in Python have a limit on the recursion depth so for a very long list it will break. Recursion also tends to use more memory.

Use recursion where you have shallow data structures or very complex structures which are themselves recursive - then rewrite it without recursion, but only if necessary due to the above limitations.


--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/

_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to