通过Python获得修剪的意思

时间:2014-12-18 22:12:43

标签: python math

我需要使用Python在数字列表中找到修剪后的平均值。

我需要数字列表的平均值减去该列表中的最大值和最小值。 例如。 list = 10,20,30 40.我需要得到20和30的平均值。

到目前为止,我有:

print "The ordered list is:", sorted(list)
u = list[1:-1]
u = list[1:-1]
print "These numbers trimmed are:",u
print "The trimmed mean is:",sum(u)/l(u)

l =列表的长度,然而这给我留下了一个错误:

print“修剪后的平均值为:”,sum(u)/ l(u) TypeError:'int'对象不可调用

但是这个

2 个答案:

答案 0 :(得分:1)

def trimmed_mean(lst):
    trimmed_lst = sorted(lst)[1:-1]
    return sum(trimmed_lst) / len(trimmed_lst)

然后

>>> trimmed_mean([10, 20, 30, 40])
25.0

答案 1 :(得分:0)

替换这个:

sum(u)/l(u)

为:

sum(u)/len(u)

一些更改:使用list作为变量名称是不好的做法,因为列表是在python中内置的

my_list = sorted(my_list)
print "The ordered list is:", my_list
u = my_list[1:-1]      # you need this only once
print "These numbers trimmed are:",u
print "The trimmed mean is:",sum(u)/len(u)