首页 > 解决方案 > 在python中将一定数量的元素从一个列表复制到另一个列表

问题描述

我想将列表的前 n 个元素复制到另一个列表中并计算新列表的标准偏差

我已经尝试过 new_list.append(old_list) 但我无法对新列表执行数学运算。我需要执行某些操作,并且不允许使用静态库

def sample_stdev(lst):
    sum,new_sum = 0,0
    new_list = []
    i,j = 0,0

    for x in range(20):         #Copy the first 20 elements
        new_list.append(lst)
        new_sum+= new_list  # didn't work even with new_sum+=new_list[x]
        j += 1
    new_mean = new_sum/j
    for row in new_list:
        i=i+1
        error = row - new_mean
        error_sq = error*error
        sum = sum + error_sq
    b=sum/(i-1)
    std = math.sqrt(b)
    return std

Error: 
new_sum+= new_list[x]
TypeError: unsupported operand type(s) for +=: 'int' and 'list'

标签: pythonlist

解决方案


这段代码:

for x in range(20):         #Copy the first 20 elements
    new_list.append(lst)

没有按照评论所说的那样做;它将全部追加lstnew_list20 次,使其成为列表列表(但所有指针都指向同一个列表)。

如果您只想获取前 20 个元素,lst可以使用数组切片语法:

new_list = lst[0:20]

推荐阅读