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

Python: How to access each element in list and put it into a new list

我是 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

然而,这给了我类型错误,说我不能从列表中减去浮点数。

所以我尝试创建一个名为 tempList 的新列表,并通过这样做将平均值放入列表中:

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

现在它为我提供相同的 typeError:unsupported 操作数类型 -: 'list' 和 'float'.

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

任何提示将不胜感激。

提前致谢。

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

    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)