4 Aug 2012 08:58
Recursive assignment in nested lists
Alonzo Quijote <alonzo.quijote <at> gmail.com>
2012-08-04 06:58:26 GMT
2012-08-04 06:58:26 GMT
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 - Tutor <at> python.org
(Continue reading)
RSS Feed