<p>您只需使用<code>sum</code>和生成器表达式:</p>
<pre><code>>>> l= [['a', 10, 30], ['b', 34, 89], ['c', 40, 60],['d',30,20]]
>>> length = float(len(l)) # in Python 3 you don't need the "float"
>>> sum(subl[1] for subl in l) / length
28.5
>>> sum(subl[2] for subl in l) / length
49.75
</code></pre>
<p>或者在列表理解中这样做:</p>
^{pr2}$
<p>同样,对于一个子列表的平均值:</p>
<pre><code>>>> length = float(len(l[0])) - 1
>>> [sum(subl[1:]) / length for subl in l]
[20.0, 61.5, 50.0, 25.0]
</code></pre>
<p>使用Python3.4或更高版本时,可以将<code>sum / length</code>替换为<a href="https://docs.python.org/3/library/statistics.html#statistics.mean" rel="nofollow noreferrer">^{<cd3>}</a>:</p>
<pre><code>>>> from statistics import mean
>>> [mean(subl[subj] for subl in l) for subj in range(1, 3)]
[28.5, 49.75]
>>> [mean(subl[1:]) for subl in l]
[20, 61.5, 50, 25]
</code></pre>
<hr/>
<p>你问过最好的方法,所以我应该提一下有专门用于表格数据的包。例如,如果您有<code>pandas</code>,那么使用<code>DataFrame</code>和<code>mean</code>就更容易了:</p>
<pre><code>>>> import pandas as pd
>>> df = pd.DataFrame(l, columns=['name', 'x', 'y'])
>>> df[['x', 'y']].mean(axis=0)
x 28.50
y 49.75
dtype: float64
>>> df[['x', 'y']].mean(axis=1)
0 20.0
1 61.5
2 50.0
3 25.0
dtype: float64
</code></pre>