擅长:python、mysql、java
<p>一个明显的变化是去掉了“fori in range(1100):”而只需迭代文件行。要迭代两个文件(xfile和yfile),请压缩它们。也就是说用类似的东西来代替那个块:</p>
<pre><code> import itertools
for xline, yline in itertools.izip(xfile, yfile):
s= xline.split(" ")
x[0] = float(s[1])
x[1] = float(s[2])
y = float(yline)
...
</code></pre>
<p>(这是假设文件是100行,(即你想要整个文件)。如果您有意限制在<em>第一个</em>100行,您可以使用以下内容:</p>
^{pr2}$
<p>但是,在同一个文件上迭代6次也是低效的—最好提前将其加载到内存中,然后在那里循环,即在循环之外,有:</p>
<pre><code>xfile = open("q1x.dat", "r")
yfile = open("q1y.dat", "r")
data = zip([line.split(" ")[1:3] for line in xfile], map(float, yfile))
</code></pre>
<p>里面只有:</p>
<pre><code>for (x1,x2), y in data:
x[0] = x1
x[1] = x2
...
</code></pre>