首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建扣除已有数组分段的新数组

如何创建扣除已有数组分段的新数组
EN

Stack Overflow用户
提问于 2017-06-21 20:12:13
回答 1查看 87关注 0票数 1

我正在尝试用Python从现有的数组中创建新的数组。我读了一些已经存在的和类似的问题,但我仍然不能解决问题。

例如:

我有数组A = [4,6,9,15],并且我想创建B =[(6-4),(9-6),(15-9)]

我试着在for循环中这样做:

代码语言:javascript
复制
deltaB=[]
for i in range(0,len(A)):
    deltaB[i]=A[i]-A[i-1]
    deltaB.append(deltaB[i])

但这并不管用。可能是因为我写的代码完全错了,因为我是Python和一般编程的新手。

你能帮我写一下代码吗?

非常感谢

EN

回答 1

Stack Overflow用户

发布于 2017-06-21 20:16:49

列表理解

最好的方法可能是使用列表理解。

代码语言:javascript
复制
[xj-xi for xi,xj in zip(A,A[1:])]

这将生成:

代码语言:javascript
复制
>>> [xj-xi for xi,xj in zip(A,A[1:])]
[2, 3, 6]

在这里,我们首先zip(..) A (列表),并将列表中省略第一个元素的片段A[1:]到元组中。对于每个这样的元组(xi,xj),我们将xj-xi添加到列表中。

错误

出现该错误的原因是,在for循环中,您从0开始并在len(A)之前停止,它应该从1开始并在len(A)之前停止。此外,您不能首先赋值给不存在的索引,您需要直接追加它:

代码语言:javascript
复制
deltaB=[]
for i in range(1,len(A)):
    deltaB.append(A[i]-A[i-1])
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44675785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档