擅长:python、mysql、java
<p>您可以使用列表:</p>
<pre><code>>>> [j[1]+','+j[0][0]+':'+str(sum(map(float,j[2:]))//(len(j)-2)) for j in [line.split() for line in open('in_file')]]
['smith,b:80.0', 'williams,j:75.0', 'mason,s:40.0']
</code></pre>
<p>在这个列表中,首先我们需要在文件上循环并拆分行,这样我们将得到以下结果:</p>
<pre><code>[line.split() for line in open('in_file')]
[['betty', 'smith', '60', '100', '80'], ['john', 'williams', '50', '100'], ['sue', 'mason', '20', '30', '40', '60', '50']]
</code></pre>
<p>现在我们需要循环这个列表,重要的部分是计算平均值,所以首先我们知道数字是从第二个索引到结尾的,所以我们需要将这个数字转换成<code>float</code>,它可以用<code>map</code>函数完成,然后计算和,然后用<code>len-2</code>除法。你知道吗</p>
<pre><code>sum(map(float,j[2:]))//(len(j)-2))
</code></pre>