您好,我是编程的新手,对于此问题,我将不胜感激。
我有一个分数列表,我想创建一个函数,用每个分数除以整个列表的计算平均值。该函数应接受分数列表作为参数,并返回带有修改分数的列表。 另外,它应该使用for循环和return语句。 这是我得分列表的简短示例: 13 22 33 42 25 (分数超过500)
答案 0 :(得分:1)
Absolute Madlad在9000教程网站出现之前就开始堆栈溢出。
以下是您可以使用的大量资源:
Lists-在这里您可以看到如何创建和操作列表。您还将看到如何遍历列表并打印其值。
Functions-这是有关函数的教程。有一个示例可供您遵循,甚至可以操作以了解更多信息。这将帮助您将参数传递给函数。当函数返回值时,请将函数视为变量本身。它保存函数结果的值。
For Loops-您肯定需要某种循环。 For循环几乎总是与列表结合使用。
您可能最终会从您的主体中获取一个列表,并为您的函数创建一个新列表,遍历第一个列表,并将平均值添加到for循环内的新列表中(循环传入的列表)。由于您要返回一个列表,因此您的主体将不得不遍历该列表以打印其值。
尝试尽可能多地玩这个游戏,并从中学到有趣的编程知识。
答案 1 :(得分:1)
tbh,您的问题措辞有点令人困惑,但这就是您要做的事情。
def scoreAvg(scores):
scoresSum = sum(scores)
scoresSum /= len(scores)
newScores = []
for i in scores:
i /= scoresSum
newScores.append(i)
return newScores
print(scoreAvg([13,22,33,42,25]))
您说您是python的新手,所以我将简要介绍一下这里发生的事情。输入的“分数”是一个包含我们的示例分数集的列表(请记住将输入括在方括号中)。我们以sum()
找到该列表的总和,以len()
找到长度的和。然后,我们开始一个for循环,遍历分数元素,然后将每个元素除以平均值,然后将该值附加到我们先前创建的列表中以保存新分数。现在我们要做的就是用return newScores
返回该列表!
希望我能帮上忙。
答案 2 :(得分:0)
您可以尝试以下代码。
from __future__ import division #For decimal division.
''' Function (func) '''
def func(lst):
new_list = [] #Define an empty new list.
for i in range(len(lst)):
new_list += [ lst[i]*len(lst) / sum(lst) ]
return new_list
mylist = [13, 22, 33, 42, 25] #List you wish to enter.
mod_list = func(lst = mylist) #Modified list.
print mod_list #Prints output (mod_list).
>>>[0.48148148148148145, 0.8148148148148148, 1.2222222222222223, 1.5555555555555556, 0.9259259259259259]
在上面的代码中,new_list
的每个元素都是输入列表(lst=mylist)
的元素除以输入列表的平均值。可以使用以下方法获得平均值:average = sum of input list / number of elements in input list
。在python中,函数len()
为您提供对象的项目数(例如列表)。函数sum()
为您提供对象的sum元素。
我希望这会有所帮助。如果您有任何疑问,请告诉我。 =)