Re: Good Python style?




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))) ()))



.



Relevant Pages

  • Re: Good Python style?
    ... first column of some_file into a set. ... In Python I am used to seeing much more verbose/explicit code. ... inp = resource ... the list comprehension, and the list comprehension out of the set. ...
    (comp.lang.python)
  • Re: Good Python style?
    ... I found the following quite cryptic code, ... first column of some_file into a set. ... In Python I am used to seeing much more verbose/explicit code. ... filter(None, # strip whitespace and filter out blank lines ...
    (comp.lang.python)
  • Good Python style?
    ... I found the following quite cryptic code, ... first column of some_file into a set. ... In Python I am used to seeing much more verbose/explicit code. ... # read first entries of all non-empty lines into a set ...
    (comp.lang.python)
  • Re: maximum value in a column of file
    ... bash, but i'm learning python), that the reason why i tried to use numpy. ... X.mean# mean of first column ... The scipy add-on contains a bunch of things for file i/o; ...
    (comp.lang.python)
  • File Parsing Question
    ... for line in inp: ... I cannot push that operation here ... This works perfectly in Perl. ... Can I do the same in Python. ...
    (comp.lang.python)