繁体   English   中英

在 python 中将一定数量的元素从一个列表复制到另一个列表

[英]Copying a certain number of elements from one list to another in 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'

这段代码:

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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM