Is there a way to define a function which takes
   a list (of lists),
   a position specified by a list of integers [i0,i1,...,in], and
   a value
and returns the result of setting 
    list[i0][i1]...[in]=value

The following function works for positions up to length 3 only.
Is it possible to write a general function that does this?

def setValueAtPosition(list,pos,value):
    if len(pos)==1:
        list[pos[0]]=value
    elif len(pos)==2:
        list[pos[0]][pos[1]]=value
    elif len(pos)==3:
        list[pos[0]][pos[1]][pos[2]]=value
    return list

For example
>>> aa=[1,2,[3,4]]

>>> setValueAtPosition(aa,[2,0],5)
[1, 2, [5, 4]]

>>> aa
[1, 2, [5, 4]]

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

Reply via email to