在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'
bbyyk 回答:在python中将一定数量的元素从一个列表复制到另一个

此代码:

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

没有按照评论所说的去做;它将所有lst附加到new_list 20次,使其成为列表列表(但所有指向同一列表的指针)。

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

new_list = lst[0:20]
本文链接:https://www.f2er.com/3155971.html

大家都在问