[Python-Dev] dict comps (original) (raw)

Tim Peters tim.one@home.com
Sat, 27 Oct 2001 14:41:41 -0400


[M.-A. Lemburg]

... Seriously, this goes down the path of lazy evaluation of expressions.

Lazy sequences specifically, but that's been a tension in Python all along (it started with the for/getitem protocol, and nothing we do from here on in will ever be as much of a hack as xrange() was for that <0.9 wink>).

Not sure whether this is the right path to follow though (can cause brain damage due to overloaded builtin debuggers, IMHO).

We can introduce "L[...]" for explicitly lazy list comprehenions .

BTW, looks like I can finally get rid off the dict() builtin I have in mxTools which is Good News !

It's not quite the same in the details: CVS dictionary(s) works just like CVS

d = {}
for k, v in s:
    d[k] = v

In particular, it demands that the elements of s each produce exactly 2 objects, where IIRC the mxTools dict() requires at least 2 (ignoring any after the second). Was ignoring excess objects "a feature", or just exposing an implementation that didn't want to bother to check?