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')] Whether this one-liner is readable or not and how to make it more so etc is probably bikeshedding. More important questions are for example: - Should you protect the open with a try - When to list and when to generate(or) All these are nice features of python but can lead to over-engineered code -- http://mail.python.org/mailman/listinfo/python-list