fileinput.input, readlines and ...

Scott David Daniels Scott.Daniels at Acm.Org
Wed Jun 24 22:34:33 CEST 2009


Peter Otten wrote:
> Scott David Daniels wrote:
>> Peter Otten wrote:
>>> with open(filename) as instream:
>>>     lines = (line.strip() for line in lines)
>>>     lookup =  dict(zip(lines, lines))
> 
>> Little bit of a fluff-up here.  
> 
> Sorry, it should have been
> 
> with open(filename) as instream:
>     lines = (line.strip() for line in instream)
>     lookup =  dict(zip(lines, lines))
> 
>> Perhaps something like:
>>
>>      with open(filename) as instream:
>>          lines = (line.strip() for line in instream)
>>      lookup = dict(zip(lines[::2], lines[1::2]))
> 
> Tu quoque ;)

You are exactly right (and my vocabulary expands a bit); I must go
wipe the egg off of my face now.  I still am thinking lists even
though I am writing generators.  I should have written:
         with open(filename) as instream:
             lines = [line.strip() for line in instream]
         lookup = dict(zip(lines[::2], lines[1::2]))
But, your example does in fact work as written.

--Scott David Daniels
Scott.Daniels at Acm.Org



More information about the Python-list mailing list