In article <[EMAIL PROTECTED]>, Lawrence D'Oliveiro <[EMAIL PROTECTED]> wrote: >In message <[EMAIL PROTECTED]>, Cameron Laird wrote: > >> In article <[EMAIL PROTECTED]>, >> Lawrence D'Oliveiro <[EMAIL PROTECTED]> wrote: >> >>>Cameron Laird wrote: >>> >>>> I've been trying to decide if there's any sober reason to advocate >>>> the one-liner >>>> >>>> map(lambda i: a.__setitem__(i, False), [x1, x2, x3, ..., x1024]) >>> >>>Are lambdas like the Dark Side of Python? >>> >>>:) >> >> Enough so, apparently, that I'm reluctant even to touch that question. > >So how else would you express something like > > def shell_escape(Arg) : > """returns Arg suitably escaped for use as a command-line argument > to Bash.""" > return \ > re.sub \ > ( > r"[\<\>\"\'\|\&\$\#\;\(\)\[\]\{\}\`\!\~\ \\]", > lambda Match : "\\" + Match.group(0), > Arg > ) > # Need to catch anything that might be meaningful to shell > #end shell_escape > >?
I suspect we're confusing each other. I *like* lambdas--at least, more than Guido does, which I recognize is a low standard. When I take your question at face value, my response is def shell_escape(Arg) : """returns Arg suitably escaped for use as a command-line argument to Bash.""" pattern = r"[\<\>\"\'\|\&\$\#\;\(\)\[\]\{\}\`\!\~\ \\]" def f1(Match): return return re.sub(pattern, f1, Arg) # Need to catch anything that might be meaningful to shell #end shell_escape 'cept that I'd hope to find a way to simplify pattern. Was that what you were asking? -- http://mail.python.org/mailman/listinfo/python-list