我正在尝试确定n个元素列表的中位数,我只是看不出我做错了什么。
我有this.GetUserByEmail = function (controllerName, methodName, email) {
var promise = $http({
method: 'GET',
url: 'api/' + controllerName + '/' + methodName + '?email=' + email,
config: {
params: {
"email": email
}
}
})
.then(function onSuccess(response) {
return response.data;
},
function onError(response) {
return response.statusText;
});
return promise;
}
,因此元素的顺序正确,但我的中位数为sorted(list)
,而不是正确的5.0
。
我的代码看起来像这样。
4.5
有什么建议吗?
答案 0 :(得分:7)
sorted()
没有到位,它会返回一个新的排序列表。重新分配(lista = sorted(lista)
)或使用list.sort()
代替(lista.sort()
)。
答案 1 :(得分:1)
您可以在修复错误的同时简化大量代码(,
未运行,sorted()
是浮点数,因此不是有效的索引值,使用{{1}使用浮点字面值并且可能期望精确浮点数等等。
len(lista)/2
答案 2 :(得分:0)
>>> 5//2.0
2.0
>>> float(5)/2.0
2.5
// 2.0在这种情况下不起作用