我需要编写一个函数来减去列表中前一个的每个下一个数字。你能帮帮我吗?数字已在列表中,因此您无需输入它们。
>>>substractionF [20, 10, -5, 12, 14, -13, -5, 0, 3] returns:
[10, 15, -17, -2, 27, -8, -5, -3]
谢谢:d
答案 0 :(得分:2)
这很简单。我会用zip
显示,但您可以使用enumerate
或range
+ len
轻松完成...
def subtract(lst):
return [ b-a for a,b in zip(lst[1:],lst[:-1])]
答案 1 :(得分:1)
以下列表理解会这样做:
[x - lst[i + 1] for i, x in enumerate(lst[:-1])]
答案 2 :(得分: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]
答案 3 :(得分:0)
def subtractionF(numbers):
return [numbers[i]-numbers[i+1] for i in range(len(numbers)-1)]
答案 4 :(得分:0)
>>> from itertools import imap
>>> list(imap(lambda x,y: x-y,numbers[:-1],numbers[1:]))
[10, 15, -17, -2, 27, -8, -5, -3]