给定一个数字列表,如何找到每个(i
)-th元素和它的(i+1
)-th之间的差异?
使用lambda
表达式还是使用列表理解更好?
例如:
给定一个列表t=[1,3,6,...]
,目标是找到一个列表v=[2,3,...]
,因为3-1=2
、6-3=3
等。
发布于 2010-03-08 19:23:39
>>> t
[1, 3, 6]
>>> [j-i for i, j in zip(t[:-1], t[1:])] # or use itertools.izip in py2k
[2, 3]
发布于 2010-03-08 22:26:04
其他答案是正确的,但是如果你在做数值工作,你可能想要考虑numpy。使用numpy,答案是:
v = numpy.diff(t)
发布于 2013-05-23 20:51:33
如果您不想使用numpy
或zip
,可以使用以下解决方案:
>>> t = [1, 3, 6]
>>> v = [t[i+1]-t[i] for i in range(len(t)-1)]
>>> v
[2, 3]
https://stackoverflow.com/questions/2400840
复制相似问题