为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

婷婷同学_ 2021-08-05 16:30:30
这是代码: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%。有什么线索吗??
查看完整描述

3 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

例如,您可以将代码修改为:

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


查看完整回答
反对 回复 2021-08-05
?
BIG阳

TA贡献1859条经验 获得超6个赞

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


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


查看完整回答
反对 回复 2021-08-05
  • 3 回答
  • 0 关注
  • 171 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信