Python 计算平均数
我一直在努力计算两个不同列表中的平均值。以下是我(作为python新手)一直在做的事情: 我自己想出了这个办法。它可能没用,但到目前为止,我可以打印两个我想用于计算的值,但我得到一个错误“ValueError:invalid literal for int(),以10为基数:‘somevalue’”。可能是Python 计算平均数,python,list,average,Python,List,Average,我一直在努力计算两个不同列表中的平均值。以下是我(作为python新手)一直在做的事情: 我自己想出了这个办法。它可能没用,但到目前为止,我可以打印两个我想用于计算的值,但我得到一个错误“ValueError:invalid literal for int(),以10为基数:‘somevalue’”。可能是''标志吗 干杯 你的意思是(int(x)+int(y))/2而不是(int(x)+int(y)/2吗?要计算实际平均值而不进行四舍五入,请使用float。您还需要一对额外的括号,否则它将是y
''
标志吗
干杯 你的意思是(int(x)+int(y))/2而不是(int(x)+int(y)/2吗?要计算实际平均值而不进行四舍五入,请使用float。您还需要一对额外的括号,否则它将是y/2而不是(x+y/2) 至于那个错误,我不确定您在Listofvalues列表中使用了什么作为输入,下面的代码对我来说很好
Averagelist = []
Listofvalues1 = [1,2]
Listofvalues2 = [6,7]
for i, x in enumerate(Listofvalues1):
for j, y in enumerate(Listofvalues2):
if j == i:
AVGvalue = ((float(x)+float(y))/2)
Averagelist.append(AVGvalue)
print Averagelist
是否需要将数据存储为字符串?您将不得不一次将它们转换为数字(浮动)。这可以在不使用for循环的情况下使用列表理解来完成:
Listofvalues1 = ['1', '2', '3', '4']
Listofvalues2 = ['5', '6', '7', '8']
Averagelist = [(float(v1)+float(v2))/2 for (v1, v2) in zip(Listofvalues1, Listofvalues2)]
您可以尝试:
averages = [(float(e[0]) + float(e[1]))/2 for e in zip(Listofvalues1, Listofvalues2)]
显示
Listofvalues1
和Listofvalues2
的内容。这会有什么不同呢?@user3223818真的吗?试试2+2/4
和(2+2)/4
自己看看。谢谢!这对我来说也很好。在这里发布后,我发现缺少一对括号。为什么float有效而int无效?代码比我之前发布的更复杂。实际上,我正在将2个文件中的值进行grepping并存储在一个列表中。这就是为什么它们已经是一个字符串。但谢谢你的洞察力@我明白了。那么你在做其他的内部for循环?否则,您可以在zip中尝试(x,y)(Listofvalues1,Listofvalues2):AVGvalue=((float(x)+float(y))/2)Averagelist.append(AVGvalue)
averages = [(float(e[0]) + float(e[1]))/2 for e in zip(Listofvalues1, Listofvalues2)]