1

我需要编写一个函数,从列表中的上一个数字中减去每个下一个数字。你能帮我做吗。数字已经在列表中,因此您无需输入它们。

 >>>substractionF [20, 10, -5, 12, 14, -13, -5, 0, 3] returns:  
 [10, 15, -17, -2, 27, -8, -5, -3]

感谢:D

4

5 回答 5

2

这是一个很容易的。我会用 来展示它zip,但你可以用enumerateor range+ len...

def subtract(lst):
    return [ b-a for a,b in zip(lst[1:],lst[:-1])]
于 2012-10-23T17:25:45.023 回答
1

使用operatormap

from operator import sub
res = map(sub, el[:-1], el[1:])
print(list(res))
# [10, 15, -17, -2, 27, -8, -5, -3]
于 2012-10-23T17:57:56.707 回答
1

以下列表理解可以做到这一点:

[x - lst[i + 1] for i, x in enumerate(lst[:-1])]
于 2012-10-23T17:26:08.270 回答
0
def subtractionF(numbers):
    return [numbers[i]-numbers[i+1] for i in range(len(numbers)-1)]
于 2012-10-23T17:26:04.337 回答
0
>>> from itertools import imap
>>> list(imap(lambda x,y: x-y,numbers[:-1],numbers[1:]))
[10, 15, -17, -2, 27, -8, -5, -3]
于 2012-10-23T17:54:18.177 回答