繁体   English   中英

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

[英]How do I print the average of the last three values in this code?

这是代码

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来计算加权平均值。

试试这个:(已添加值权重。)

my_list = ['James', 'Hanniburg', 359372932, 50, 75, 100] # just input

a, b, c, d, e, f = my_list
print('{0} {1} - {2} - {3}'.format(a,b,c,((d*0.25+e*0.25+f*0.5)/3)))

输出:

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)))
    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))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM