我需要编写一个函数,从列表中的上一个数字中减去每个下一个数字。你能帮我做吗。数字已经在列表中,因此您无需输入它们。
>>>substractionF [20, 10, -5, 12, 14, -13, -5, 0, 3] returns:
[10, 15, -17, -2, 27, -8, -5, -3]
感谢:D
我需要编写一个函数,从列表中的上一个数字中减去每个下一个数字。你能帮我做吗。数字已经在列表中,因此您无需输入它们。
>>>substractionF [20, 10, -5, 12, 14, -13, -5, 0, 3] returns:
[10, 15, -17, -2, 27, -8, -5, -3]
感谢:D
这是一个很容易的。我会用 来展示它zip
,但你可以用enumerate
or range
+ len
...
def subtract(lst):
return [ b-a for a,b in zip(lst[1:],lst[:-1])]
使用operator
和map
from operator import sub
res = map(sub, el[:-1], el[1:])
print(list(res))
# [10, 15, -17, -2, 27, -8, -5, -3]
以下列表理解可以做到这一点:
[x - lst[i + 1] for i, x in enumerate(lst[:-1])]
def subtractionF(numbers):
return [numbers[i]-numbers[i+1] for i in range(len(numbers)-1)]
>>> from itertools import imap
>>> list(imap(lambda x,y: x-y,numbers[:-1],numbers[1:]))
[10, 15, -17, -2, 27, -8, -5, -3]