Python 如何完成该功能?

Python 如何完成该功能?,python,list,function,for-loop,Python,List,Function,For Loop,我使用此函数查找列表中非零评分的平均值。在我的ide中,它说,average是一个未使用的变量。我知道我的函数缺少一些东西,但我正在努力找到它。如果你能帮忙,我将不胜感激 def average_rating(all_ratings): average=[] for j in range(30): ch=0 count=0 for i in range(5): if all_ratings[i][j] !=

我使用此函数查找列表中非零评分的平均值。在我的ide中,它说,
average
是一个未使用的变量。我知道我的函数缺少一些东西,但我正在努力找到它。如果你能帮忙,我将不胜感激

def average_rating(all_ratings):
    average=[]
    for j in range(30):
        ch=0
        count=0
        for i in range(5):
            if all_ratings[i][j] != 0:
                ch = ch+all_ratings[i][j]
                count=count+1
在我的ide中,它说,
average
是一个未使用的变量

那是因为你没有附加任何东西。它只是一个空的
列表

你很接近!将这一行添加到外循环的底部将存储列表中30张胶片的平均评级
average

average.append(ch/count)
以下是一个基于您的代码的工作示例:

film_name=[“肖申克的救赎”,
“教父”,
“教父:第二部分”,
“黑暗骑士”,
“12个愤怒的人”,
“辛德勒名单”,
“指环王:国王归来”,
“低俗小说”,
“好的、坏的和丑陋的”,
“搏击俱乐部”,
“小丑”,
“魔戒之王:魔戒之旅”,
“阿甘正传”,
“盗梦空间”,
“星球大战:第五集-帝国反击”,
“指环王:双塔”,
“矩阵”,
“一只飞过杜鹃巢”,
“好家伙”,
“七武士”,
“Se7en”,
“上帝之城”,
“生活是美好的”,
“沉默的羔羊”,
“星球大战:第四集-新希望”,
“这是一种美好的生活”,
“拯救大兵瑞恩”,
“偷偷溜走”,
“绿色一英里”,
“莱昂:专业人士”,]
所有_评级=[[5,5,4,4,3,1,2,3,4,4,4,3,4,0,0,
1, 2, 3, 4, 4, 4, 1, 4, 0, 0, 0, 1, 2, 5],
[5, 0, 1, 2, 3, 1, 2, 3, 4, 4, 4, 5, 4, 2, 1, 0,
1, 2, 0, 5, 0, 4, 1, 4, 2, 0, 0, 1, 0, 5],
[5, 2, 3, 4, 4, 0, 0, 0, 4, 5, 0, 3, 0, 0, 0, 3,
4, 0, 1, 4, 4, 4, 0, 4, 0, 3, 0, 1, 2, 5],
[5, 0, 4, 0, 0, 4, 2, 3, 0, 0, 4, 0, 3, 0, 1, 0,
1, 2, 3, 0, 2, 0, 1, 0, 0, 0, 4, 0, 1, 5],
[5, 4, 3, 2, 1, 1, 2, 3, 4, 3, 4, 3, 4, 0, 3, 0,
1, 2, 4, 4, 4, 4, 1, 4, 0, 0, 0, 1, 2, 5], ]
def平均_评级(所有_评级):
平均值=[]
对于范围(30)内的j:
ch=0
计数=0
对于范围(5)中的i:
如果所有的_评级[i][j]!=0:
ch=ch+所有_评级[i][j]
计数=计数+1
平均值。追加(ch/计数)
平均回报率
对于电影,zip评级(电影名称、平均评级(所有评级)):
打印(f“{额定值:0.2f}-{胶片}”)
输出:

5.00 - The Shawshank Redemption
3.67 - The Godfather
3.00 - The Godfather: Part II
3.00 - The Dark Knight
2.75 - 12 Angry Men
1.75 - Schindler's List
2.00 - The Lord of the Rings: The Return of the King
3.00 - Pulp Fiction
4.00 - The Good, the Bad and the Ugly
4.00 - Fight Club
4.00 - Joker
3.50 - The Lord of the Rings: The Fellowship of the Ring
3.75 - Forrest Gump
2.00 - Inception
1.67 - Star Wars: Episode V - The Empire Strikes Back
3.00 - The Lord of the Rings: The Two Towers
1.60 - The Matrix
2.00 - One Flew Over the Cuckoo's Nest
2.75 - Goodfellas
4.25 - Seven Samurai
3.50 - Se7en
4.00 - City of God
1.00 - Life Is Beautiful
4.00 - The Silence of the Lambs
2.00 - Star Wars: Episode IV - A New Hope
3.00 - It's a Wonderful Life
4.00 - Saving Private Ryan
1.00 - Spirited Away
1.75 - The Green Mile
5.00 - Léon: The Professional
要获得更具pythonic和功能性的解决方案,请尝试:

def平均评分(所有评分):
对于zip格式的评级(*所有_评级):
评级=元组(过滤器(无,评级))
收益总额(评级)/len(评级)

请注意,这两种解决方案都不能处理所有5个人都将一部电影评级为0的情况,这会导致被0除的例外情况。

你说缺少什么是什么意思?变量?数学方程式?您希望函数做什么?打印值返回值?在计算平均值并返回它的地方缺少一点。这就是你的意思吗?你能告诉我作为参数传入的变量是什么吗?@khelwood是的,这就是我正在努力寻找的,哪个变量存储该值?另外,请出示评级列表