| 1 | initial version |
Your code self-contradicts. Take this sample :
for si in mylistg:
if si == 's1':
alist = map(s1, alist)
The second line triggers the execution of the third if the test succeeds, i. e if si is a string.
But the third line then tries to map the function si to the elements of alist.
You can't have it both ways : si can't be simultaneously a string and a function...
You have to choose to have your cake or to eat it...
A possible solution is to make mylistg a list of functions, and have allowed_s a list of permissible values. You code snippet would become (something like)
alisttt=[list(map(lambda v:u(v), alist)) for u in mylistg if u in allowed_s]
with possible seasonings to prepare the arguments and return the result in pleasant form.
HTH,
Historical (paleontological) note : Common Lisp, allowing you to attach both a value and a function to the same symbol, would have allowed such a ... thing ... Not Python.
Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.