
Hello Guido,
I did a quick review of the stdlib, including the tests, to see which list comprehensions could be replaced with generator expressions. Thought I admit I am biased towards early binding, I ended up looking for cases with the following properties: [...]
Even if we switched to early binding, won't these issues still bite you with mutable values? E.g.:
some_dict = {'x': 1, 'y': 2} iter1 = (some_dict.get(v, 3) for v in input1) some_dict['z'] = 5 iter2 = (some_dict.get(v, 7) for v in input2)
It seems like it would be surprising (to me, anyway) if this gave a different result than:
some_dict = {'x': 1, 'y': 2} iter1 = (some_dict.get(v, 3) for v in input1) some_dict = {'x': 1, 'y': 2, 'z': 5} iter2 = (some_dict.get(v, 7) for v in input2)
-Edward