我正在尝试从 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 和一般编程的新手。
你能帮我写一下代码吗?
非常感谢
最佳答案
列表理解
可能最好的方法是使用列表理解:
[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])
关于python - 如何创建新数组减去现有数组的段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44675785/