> Heh, and then {(x, x**2) for x in range(n)} is a dict comprehension. No, it's a set comprehension where the set elements are pairs. The dict comprehension would be {x: x**2 for x in range(n)} Or would that be a single-element dict whose key is x and value is a generator expression? :-)