Python 如何打印此代码中最后三个值的平均值?

Python 如何打印此代码中最后三个值的平均值?,python,python-3.x,Python,Python 3.x,下面是代码: for i in range(0, len(my_list), 6): print(my_list [i] + " " + my_list [i+1] + " - " + my_list [i+2] + " - " + my_list [i+3] + " , " + my_list [i+4] + " , " + my_list [i+5]) 这段代码获取一个文件,并将文件中的6行打印成一行,格式如下: Marilyn Munro - 65783234 - 66, 7

下面是代码:

for i in range(0, len(my_list), 6):  
    print(my_list [i] + " " + my_list [i+1] + " - " + my_list [i+2] + " - " + my_list [i+3] + " , " + my_list [i+4] + " , " + my_list [i+5])
这段代码获取一个文件,并将文件中的6行打印成一行,格式如下:

Marilyn Munro - 65783234 - 66, 77, 89
Johnny Lang - 83492753 - 45, 65, 45
我希望代码将最后三个数字取平均值,这样输出的结果如下:

James Hanniburg - 359372932 - 50, 75, 100
为此:

James Hanniburg - 359372932 - 81.25 #81.25 being the average of 50, 75, and 100, assuming 100 is worth 50%, and 50 and 75 are each worth 25%.
编辑:我忘了提到,第三个值值是50%,而其他两个值各值25%


任何线索???

您可以修改代码,例如:

for i in range(0, len(ml), 6): 
    weighted_avg = sum([int(ml[i+3]), int(ml[i+4]), 2*int(ml[i+5])]) / 4
    print(ml[i] + " " + ml[i+1] + " - " + ml[i+2] + " - " + str(weighted_avg))
这将通过
int
转换值(将重复计算的最后一个值乘以
2
)计算加权平均值,并将结果除以
4

尝试以下操作: (已添加值权重。)

输出:

C:\Users\Desktop>py x.py
James Hanniburg - 359372932 - 22.916666666666668
您还可以从统计数据导入平均值

my_list = ['James', 'Hanniburg', 359372932, 50, 75, 100]
from statistics import mean 
a, b, c, *d = my_list
print('{0} {1} - {2} - {3}'.format(a,b,c,mean(d)))

你需要把三个数字相加,然后除以三。在单独的一行中执行此操作,以使代码更具可读性(它目前不适合在屏幕上显示)。哦,欢迎来到堆栈溢出。请阅读,以及中的主题。感谢您的帮助。我忘了提到第三个值相当于分数的50%,而另外两个值分别相当于分数的25%。有什么帮助吗?我自己也在想办法,但有些事;“这不起作用。@antoniomunro我修改了答案,以说明加权平均数。哪一个是第三个值?@rarback这从问题中很明显。别忘了接受问题的答案并进行投票,这样其他人就可以很容易地找到答案,问题就可以结束了。
my_list = ['James', 'Hanniburg', 359372932, 50, 75, 100]
from statistics import mean 
a, b, c, *d = my_list
print('{0} {1} - {2} - {3}'.format(a,b,c,mean(d)))
    for i in range(0, len(my_list), 6):
        print("{} {} - {} - {}".format(my_list[i], my_list[i+1], my_list[i+2],((my_list[i+3]+my_list[4])*0.25+my_list[5]*0.5)/3))