我有一个 list 如下:
[
[0, 5, -3, 5, 0, 0],
[-3, 0, 1, 0, 5, 0],
[1, 0, 5, 0, -5, 0],
[-3, 0, 3, 0, 0, 5]
]
我需要计算共享相同索引的元素的总和和平均值,然后结果将添加到新的列表中.例如,这些内部列表的索引为0的项目将被加在一起:
0 + (-3) + 1 + (-3) = -5
然后,总和将除以平均数(不包括0):
average = -5/3 = -1.66666667
最后,它将被添加到新的列表中.
我以为结果会是这样的
[
-1.66667,
5.0,
1.5,
5.0,
0.0,
5
]
我试过这个:
for i in range(0, len(rating_values)):
for j in range(0, len(rating_values[i])):
total = 0
count = 0
if rating_values[i][j] != 0:
total += rating_values[i][j]
count += 1
average_rating = total / count if count > 0 else 0
average_list.append(average_rating)
但我得到了这个
[0, 5.0, -3.0, 5.0, 0, 0, -3.0, 0, 1.0, 0, 5.0, 0, 1.0, 0, 5.0, 0, -5.0, 0, -3.0, 0, 3.0, 0, 0, 5.0]
有没有一种方法可以让我只在Python语言中循环访问相同索引的项(对于那些内部列表)?