<p>使用</p>
<pre><code>1, 2, 3
4, 2, 3
4, 5, 3
1, 6, 3
1, 6, 6
6, 2, 3
</code></pre>
<p>作为Class1.csv
以及</p>
<pre><code>askclass = str(input("what class?"))
if askclass == ('1'):
with open("Class1.csv") as f:
columns = f.readline().strip().split(",")
sums = [1] * len(columns)
for line in f:
# Skip empty lines
if not line.strip():
continue
values = line.split(",")
for i in range(1,len(values)):
sums[i] += int(values[i])
for index, summedValues in enumerate (sums):
print (columns[index], 1.0 * (summedValues) / 3)
</code></pre>
<p>我得到了预期的结果:</p>
<pre><code>what class?1
('1', 0.3333333333333333)
(' 2', 7.333333333333333)
(' 3', 6.333333333333333)
</code></pre>
<hr/>
<p><strong>[更新]</strong>观察:</p>
<ol>
<li>定义在<code>sums = [1] * len(columns)</code>上的sum有长度列,但您忽略了操作中的第一列,因此sum[0]的值始终是1,似乎没有必要</李>
<li>对于浮点数除法来说,<code>summedValues / 3.0</code>而不是<code>1.0 * (summedValues) / 3</code>就足够了</li>
</ol>
<hr/>
<p>也许这就是你想要的</p>
<pre><code>for line in f:
# Skip empty lines
if not line.strip():
continue
values = line.split(" ")
for i in range(1,len(values)):
sums[i] += int(values[i])
for index, summedValues in enumerate (sums):
print (columns[index], 1.0 * (summedValues) / 3)
</code></pre>