Efficient grep using Python?

Fredrik Lundh fredrik at pythonware.com
Wed Dec 15 17:48:59 CET 2004

Tim Peters wrote:

>> bdict = dict.fromkeys(open(bfile).readlines())
>> for line in open(afile):
>>    if line not in bdict:
>>        print line,
>> </F>
> Note that an open file is an iterable object, yielding the lines in
> the file.  The "for" loop exploited that above, but fromkeys() can
> also exploit it.  That is,
> bdict = dict.fromkeys(open(bfile))
> is good enough (there's no need for the .readlines()).

(sigh.  my brain knows that, but my fingers keep forgetting)

and yes, for this purpose, "dict.fromkeys" can be replaced
with "set".

    bdict = set(open(bfile))

(and then you can save a few more bytes by renaming the


More information about the Python-list mailing list