python - 如何使用 for 循环和两个列表找到差异并定义函数?
问题描述
我需要编写一个名为 var_fun 的函数,它返回列表的方差并使用 2 个列表进行测试。我实际上必须返回每个元素的标准偏差。list_1 = [8, 8, 3, 5, 5, 8, 1, 4, 8, 6, 3, 10, 9] list_2 = [8, 12, 3, 5, 5, 8, 1, 4, 8, 3、10、9]
这是我所做的代码,但它返回 <function var_func at 0x7f462679ad08> 我该如何解决这个问题?
def var_fun(x):
for i in x:
var = ((i - mean_fun(x))**2)
return var_fun
print(var_fun(list_1))
print(var_fun(list_2))
这是我的意思:
def mean_fun(values) :
length = len(values)
total_sum = 0
for i in range(length):
total_sum += values[i]
average = (total_sum/length)
return round(average, 2)
print(mean_fun(list_1))
print(mean_fun(list_2))
输出应如下所示: [25.0, 9.0, 9.0, 4.0, 1.0, 1.0, 0.0, 4.0, 4.0, 4.0, 4.0, 9.0, 16.0] [28.41, 11.09, 11.09, 5.43, 1.77, 1.77, 2.79, 2.79 , 2.79, 7.13, 13.47, 32.15]
解决方案
在函数var_fun()
中,返回var
而不是var_fun
。那应该可以解决问题。
您收到错误是因为您试图返回函数本身。
此外,这些行没有任何意义。您可以删除它们:
mean_fun = list_1
mean_fun = list_2
更好的选择:
https://numpy.org/doc/stable/reference/generated/numpy.var.html https://numpy.org/doc/stable/reference/generated/numpy.mean.html
看看上面的 numpy 函数,它们可以直接计算均值和方差。
推荐阅读
- c# - 动态 LINQ IQueryable(在运行时生成表达式)
- sql - JOIN ON 子句中的 Validate_conversion 函数 - ORA-00932:不一致的数据类型:预期 NUMBER 得到 CHAR
- javascript - Google Charts:在循环中设置多个侦听器会覆盖以前的侦听器
- symfony - 自定义规范器的 API 平台文档
- hibernate - 使用 Spring Boot JPA 检查 MySQL DB 连接 - 如何设置 Hikari 的超时
- date - SAP 网关服务器中的 DatePicker 值不匹配
- javascript - 使用JS在websql中插入表单数据创建动态表单
- keras - 如何引用多输出模型的一个输出
- pepper - Pepper 机器人参与和动画
- html - 来自检查器 HTML 的不同 HTTP 响应