查找列表中的整数之间的差异

时间:2013-10-09 04:45:29

标签: python numpy

经过多次修改后,我终于拿出一段代码来获取相同列表中每个整数之间的差异,并将它们转储到一个新列表中。这是我的代码:

ints = [3, 5, 9, 15, 36]
difs = []
h = 0

while h < len(ints) - 1:    
    difs.append(ints[1 + h] - ints[0 + h])
    h = h + 1
print difs  

运行时,列表'difs'包含[2,4,6,21](即'int'列表中整数之间的差异。

我的问题:是否有更简单的功能 - 也许是numpy - 自动执行此操作?

3 个答案:

答案 0 :(得分:4)

numpy中有一项功能:numpy.diff()

>>> import numpy
>>> numpy.diff([3, 5, 9, 15, 36])
array([ 2,  4,  6, 21])

答案 1 :(得分:2)

将列表理解与zip一起使用:

>>> ints = [3, 5, 9, 15, 36]
>>> [b-a for a, b in  zip(ints, ints[1:])]
[2, 4, 6, 21]

答案 2 :(得分:1)

是的,numpy中有一个函数diff()。 它可以像这样使用......

ints = [3, 5, 9, 15, 36]
x = numpy.array(ints)

numpy.diff(x)

输出:

[2, 4, 6, 21]  

您还可以使用相同的函数在函数中使用axis参数获取两个列表之间的差异。