【发布时间】:2015-12-15 00:31:33
【问题描述】:
我正在解决一个问题,但我很好奇如何更好地格式化我的输出。基本上,我正在使用一个数组,它在 Python 中基本上是一个列表中的一个列表,或者我应该说嵌套列表。我正在研究的问题与电影评论的平均评分有关,但可以说第一列是编号为 1-3 或 1-5 的“评论者”(取决于数组的大小)和电影评论是行,这也是取决于数组本身的大小,3x3、6x6 等。所以下面我将包含我的代码。
array = [[4,6,2,5], [7,9,4,8], [6,9,3,7]]
def review(array):
'function that outputs average review of movie scores'
ncols = len(array[0]) #finds number of columns in array
total = 0
for row in array:
for el in row:
total+= el
avg = total/ncols
print(end = ' ')
print(' Reviewer average:', avg)
现在,就计算而言,这确实可以正常工作,但我需要做的是根据数组中的列,或者换句话说,它应该根据数组大小输出列号。例如,像我上面代码中的原始数组一样的 3x3 数组输出应该如下所示:
Reviewer 1 average: 4.25
Reviewer 2 average: 11.25
Reviewer 3 average: 17.5
但是,正如我所说,我的问题是,我似乎无法弄清楚如何对其编号以适用于任何表/数组大小,我希望它能够工作,无论它是 6x6 还是 3x3 等。
我当前的输出如下:
Reviewer average: 4.25
Reviewer average: 11.25
Reviewer average: 17.5
【问题讨论】:
-
你确定你的平均值是正确的吗?
-
除了不重置总数之外,您似乎还混淆了行和列。
ncols和row in array都引用array中的第一个数组。
标签: python arrays python-3.x