[Tutor] a quick Q: how to use for loop to read a series of files with .doc end
Andreas Perstinger
andreas.perstinger at gmx.net
Sat Oct 8 07:57:37 CEST 2011
On 2011-10-08 05:34, lina wrote:
> Another minor derived questions:
>
> summary=[]
> for a,b in zip(results['E'],results['B']):
> summary.append(a+b) ## now the summary is '[0,1, 3, 5,
> 6,0,0,0]'
> del summary[0] ## here I wanna remove the first zero, which came
> from the initial double quote "EB...E",
> summary.pop() ## here I wanna remove the last three zeros
> summary.pop()
> summary.pop()
> print(summary) ### output is [1,3,5,6]
> summary='\n'.join(str(summary).split(',')) ### wish the result in
> one column,
> with open(base+OUTFILEEXT,"w") as f:
> f.write(str(summary))
>
> the final result in the output.txt file is:
> [1
> 3
> 5
> 6]
>
> Q1: how can I remove the [1 "[" to only keep 1?
That's a job for a list comprehension (read
http://docs.python.org/py3k/tutorial/datastructures.html#list-comprehensions
for a short introduction):
new_summary = '\n'.join([str(element) for element in summary])
> Q2 how can I improve above expressions?
-) As above, you could use a list comprehension for creating your
summary list:
summary = [(a + b) for a, b in zip(results['E'], results['B'])]
-) Instead of
del summary[0]
summary.pop()
summary.pop()
summary.pop()
I suggest to slice your list:
summary = summary[1:-3]
But this assumes that your summary list will always have one leading
zero and 3 trailing zeros.
-) In your last line
with open(base+OUTFILEEXT,"w") as f:
f.write(str(summary))
you don't need to convert summary to a string because it is already one.
Bye, Andreas
More information about the Tutor
mailing list