我正在尝试用Python从现有的数组中创建新的数组。我读了一些已经存在的和类似的问题,但我仍然不能解决问题。
例如:
我有数组A = [4,6,9,15],并且我想创建B =[(6-4),(9-6),(15-9)]。
我试着在for循环中这样做:
deltaB=[]
for i in range(0,len(A)):
deltaB[i]=A[i]-A[i-1]
deltaB.append(deltaB[i])但这并不管用。可能是因为我写的代码完全错了,因为我是Python和一般编程的新手。
你能帮我写一下代码吗?
非常感谢
发布于 2017-06-21 20:16:49
列表理解
最好的方法可能是使用列表理解。
[xj-xi for xi,xj in zip(A,A[1:])]这将生成:
>>> [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)之前停止。此外,您不能首先赋值给不存在的索引,您需要直接追加它:
deltaB=[]
for i in range(1,len(A)):
deltaB.append(A[i]-A[i-1])https://stackoverflow.com/questions/44675785
复制相似问题