On Dec 10, 3:03 pm, Jean-Michel Pichavant <jeanmic...@sequans.com> wrote: > ----- Original Message ----- > > On Dec 7, 6:46 pm, Marco <name.surn...@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
Yes, l is an undesirable name because it can look like 1 -- http://mail.python.org/mailman/listinfo/python-list