python - 在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 次,使其成为列表列表(但所有指针都指向同一个列表)。
如果您只想获取前 20 个元素,lst
可以使用数组切片语法:
new_list = lst[0:20]
推荐阅读
- networking - 消息广播(在本地网络中)是客户端/服务器还是对等系统?
- javascript - 在 React 中,如何将“this.state”作为参数传递给“socket.on”回调函数?
- google-docs - 在 Google 文档中将黑色设置为默认颜色
- r - ggplot - 出现在图例中的额外标签
- python - Flask GET 请求被发送到错误的路径,导致 404
- javascript - 为什么缺少的函数参数的值为“[object Object]”?
- javascript - 使用 Twilio 时 Firestore 功能部署错误
- assembly - 用于打印到标准输出的“mov edx,Len”是否将“Len”的值或地址存储到寄存器中?
- python-3.x - 在 Python OOP 中你能帮我理解为什么这段代码不起作用
- laravel - WebSocket 连接到 'wss://***:6001/socket.io/?EIO=3&transport=websocket' 失败:WebSocket 已关闭