计算元组python中元素的平均值

2024-10-01 15:42:05 发布

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

a=('A','1022', '1023', '1024', '1025', '1026', '1027', '1028', '1029', '1030', '1030')
b=('B', '-1.0', '1', '-2.443', '-1.456', '4.00', '3.00', '-2.343', '2.112', '3.00', '')

我想从a和B中排除第一个元素aveb,并计算a和B元组中值的平均值。我试着写一个这样的代码:

^{pr2}$

我犯了一些这样或那样的错误:

TypeError: unsupported operand type(s) for +=: 'int' and 'str'

如何解决此错误或如何找到平均值?在


Tags: and代码元素fortype错误int平均值
3条回答
a=('A','1022', '1023', '1024', '1025', '1026', '1027', '1028', '1029', '1030', '1030')
b=('B', '-1.0', '1', '-2.443', '-1.456', '4.00', '3.00', '-2.343', '2.112', '3.00',)

def avarage(value):
    sum=0
    value = list(value)
    value.pop(0)
    for i in value:
        sum+=float(i)
    avrg = sum / (len(value))
    return avrg

print(avarage(a))
print(avarage(b))

问题是列表中的值仍然是字符串。要从字符串转换为数字,需要使用float()

a=('A','1022', '1023', '1024', '1025', '1026', '1027', '1028', '1029', '1030', '1030')
b=('B', '-1.0', '1', '-2.443', '-1.456', '4.00', '3.00', '-2.343', '2.112', '3.00', '')

print sum(map(float, filter(None, a[1:])))/(len(a)-1)
print sum(map(float, filter(None, b[1:])))/(len(b)-1)

结果:

^{pr2}$

由于试图在此处添加int和string类型元素,因此出现错误:

sum是值为0的int类型元素

以及 值中的元素是字符串类型。在

只需更换:

sum+=i

有:

^{pr2}$

相关问题 更多 >

    热门问题