给定一个数字列表,如何找到每个(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
复制相似问题