A question about readability

Jean-Michel Pichavant jeanmichel at sequans.com
Mon Dec 10 11:03:22 CET 2012



----- Original Message -----
> On Dec 7, 6:46 pm, Marco <name.surn... at gmail.com> wrote:
> > Hi all, do you think this code:
> >
> > $ more myscript.py
> > for line in open('data.txt'):
> >      result = sum(int(data) for data in line.split(';'))
> >      print(result)
> >
> > that sums the elements of the lines of this file:
> >
> > $ more data.txt
> > 30;44;99;88
> > 11;17;16;50
> > 33;91;77;15
> > $ python3.3 myscript.py
> > 261
> > 94
> > 216
> >
> > is explicit enough? Do you prefer a clearer solution?
> > Thanks in advance, Marco
> > --
> > Marco
> 
> Interpreting your question as a general question of stylistics, my
> experience is that a 3 line script often becomes a 10 line or a 50
> line script at which point the direct printing will have to be
> modified to create an internal data structure.
> 
> So on the whole I find it expedient to start with that assumption and
> write it as:
> 
> def linesums(file):
>   return [sum(int(i) for i in l.split(';')) for l in open(file, 'r')]

Why change the OP's namings ? 'data' and 'line' were more suitable than 'i' and 'l'. Of course we're nitpicking, no one will get hurt.

JM


-- IMPORTANT NOTICE: 

The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.


More information about the Python-list mailing list