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