Good Python style?

Michael Bentley michael at jedimindworks.com
Thu May 31 04:53:40 EDT 2007


On May 31, 2007, at 2:59 AM, Andreas Beyer wrote:

> Hi,
>
> I found the following quite cryptic code, which basically reads the
> first column of some_file into a set.
> In Python I am used to seeing much more verbose/explicit code.  
> However,
> the example below _may_ actually be faster than the usual "for line  
> in ..."
> Do you consider this code good Python style? Or would you recommend to
> refrain from such complex single-line code??
>
> Thanks!
> Andreas
>
> inp = resource(some_file)
> # read first entries of all non-empty lines into a set
> some_set = frozenset([line.split()[0] for line in \
>           filter(None, [ln.strip() for ln in inp])])

I don't know about style, but I find it much harder to read than this:

some_set = frozenset(line.split()[0]
                      for line in inp
                      if len(line.strip()))

...which I *think* is equivalent, but less complicated.

regards,
Michael
---
(do (or (do (not '(there is no try))) ()))






More information about the Python-list mailing list