On Dec 10, 3:03*pm, JeanMichel Pichavant <(EMail Removed)>
wrote:
>  Original Message 
> > On Dec 7, 6:46*pm, Marco <(EMail Removed)> 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
Yes, l is an undesirable name because it can look like 1
