计算平均值

2024-04-25 22:33:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在努力计算两个不同列表中值的平均值。以下是我一直在做的(作为python的新手):

Averagelist = []
Listofvalues1 = ['1', '2', '3', '4']
Listofvalues2 = ['5', '6', '7', '8']

for i, x in enumerate(Listofvalues1):
    for j, y in enumerate(Listofvalues2):
        if j == i:
            AVGvalue = (int(x)+int(y)/2)
            Averagelist.append(AVGvalue)

我自己想出来的。它可能没用,但到目前为止,我可以打印两个用于计算的值,但我得到一个错误“ValueError:invalid literal for int(),以10为基数:'somevalue'”。可能是''符号吗?你知道吗

干杯!你知道吗


Tags: in列表forif错误int平均值valueerror
3条回答

你是说(int(x)+int(y))/2而不是(int(x)+int(y)/2?你知道吗

是否需要将数据存储为字符串?你必须一次将它们转换成数字(浮点数)。这可以在没有for循环的情况下完成,使用列表理解:

Listofvalues1 = ['1', '2', '3', '4']
Listofvalues2 = ['5', '6', '7', '8']
Averagelist = [(float(v1)+float(v2))/2 for (v1, v2) in zip(Listofvalues1, Listofvalues2)]

要计算实际平均值而不进行四舍五入,请使用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

相关问题 更多 >