Python:如何访问列表中的每个元素并将其放入新列表中

时间:2017-10-09 22:50:07

标签: python list mse mean-square-error

我是python的新手,我正在尝试从我的数据中实现MSE(均方误差)。 我正在尝试访问列表中的每个元素,并从平均值中减去原始数据,并在最后将其平方为单独的步骤,因此我可以在结尾处总结并将其除以总计列表中的元素数量。

现在,我只是尝试访问列表中的每个元素并找到差异并将其放入新创建的列表newList中。

这是我目前的代码:

for i in range(len(X)):
    newList[i] = X[i] - tempList[i]

起初,我尝试过做

for i in range(len(X)):
    newList[i] = X[i] - mean

但是,这给了我typeError说我不能从列表中减去float。

所以我尝试创建一个名为tempList的新列表,并通过执行以下操作将平均值放入列表中:

for i in range(len(X)):
    tempList.insert(i, mean) #now my tempList contains [3.995, 3.995, 3.995 ....., 3.995]

现在它给了我相同的typeError:不支持的操作数类型 - :' list'并且'浮动'。

我更熟悉java和其他C语言,我认为这是编辑列表中每个元素的方式,但我猜Python是不同的(显然)。

任何提示将不胜感激。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您在代码的其他地方遇到问题,这就是您收到类型错误的原因。你展示的片段完全合法。

    X = [ 2, 12, 85, 0, 6 ]
    tempList = [ 3, 4, 3, 1, 0 ]
    newList = list([0] * len(X))

    for i in range(len(X)):
        newList[i] = X[i] - tempList[i]

    print(newList)

无论如何,回到原来的问题,你可以使用功能样式

    X = [ 2, 12, 85, 0, 6 ]
    mean = sum(X) / float(len(X))
    print(mean)

    Y = map(lambda x: x - mean, X)
    print(Y)