On May 31, 3:59 am, Andreas Beyer <[EMAIL PROTECTED]> 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 think it would be more readable if you would take the filter out of the list comprehension, and the list comprehension out of the set. inp = resource(some_file) stripped_lines = (ln.strip() for ln in inp) splitted_lines = (line.split()[0] for line in stripped_lines if line) some_set = frozenset(splitted_lines) -- http://mail.python.org/mailman/listinfo/python-list