I thank Chris and Serhiy for their helpful comments. I agree with both of you, that a lambda won't be able to give the desired result. However, although flawed the idea was a useful stepping stone for me. Perhaps as "the simplest thing that could possibly work".
I thank Serhiy for saying that
>>> with helper(map(open, ['a', 'b', 'c'])) as a, b, c:
>>> pass
can work.
Serhiy suggests
>>> with ExitStack() as stack:
>>> files = [stack.enter_context(open(fname)) for fname in filenames]
A simpler alternative, for the OP's original post, could be:
>>> with ExitMap(open, ['a', 'b', 'c']) as a, b, c:
>>> pass
where ExitMap(*args) is equivalent to helper(map(*args)). Of course, using ExitStack is the easy way to code ExitMap.
In any case, I think that Chris, Serhiy and myself agree that the OP's problem is best solved using the capabilities that Python already has.
--
Jonathan