?
=?ISO-8859-1?Q?Sch=FCle_Daniel?=
Hello group,
....
.... lst.append(tmp)
....
and now the obvious one (as I thought at first)
....
I think I understand where the problem comes from
lambda:i seems not to be fully evalutated
it just binds object with name i and not the value of i
thus lst[0]() is not 0
are there other solutions to this problem
without use of eval or exec?
Regards, Daniel
.... lst.append(eval("lambda:%i" % i))>>> lst=[]
>>> for i in range(10):
....
.... exec "tmp = lambda:%i" % i # assignment is not expression>>> lst[0]() 0
>>> lst[1]() 1
>>> lst[9]() 9
>>>
>>> lst=[]
>>> for i in range(10):
.... lst.append(tmp)
....
>>> lst[0]() 0
>>> lst[1]() 1
>>> lst[9]() 9
>>>
and now the obvious one (as I thought at first)
.... lst.append(lambda:i)>>> lst=[]
>>> for i in range(10):
....
>>> lst[0]() 9
>>> i 9
>>>
I think I understand where the problem comes from
lambda:i seems not to be fully evalutated
it just binds object with name i and not the value of i
thus lst[0]() is not 0
are there other solutions to this problem
without use of eval or exec?
Regards, Daniel