[英]Find difference between every two adjacent elements in a list using lambda expressions?
我有一个这样的清单:
lst = [1, 13, 5, 23, 22, 1, 2]
我想使用lambda表达式找出每两个相邻元素之间的区别:
differences = [12, -8, 18, -1, -21, 1]
我该怎么做? 谢谢。
使用inline for loop
的lambda
inline for loop
。 循环将遍历索引,然后使用索引访问提供的数组中的数字,并添加相邻的索引。
magicSubtract = lambda lst: [(lst[i] - lst[i+1]) for i in range(0,len(lst)-1)]
print(magicSubtract([1, 13, 5, 23, 22, 1, 2]))
为什么用lambda表达? 对于内联解决方案,您可以使用列表推导:
[lst[i+1]-lst[i] for i in range(len(lst)-1)]
或者您可以使用地图:
map(lambda pair: pair[1] - pair[0], zip(lst[:-1], lst[1:]))
如果需要列表,将列表应用于结果:
list(_)
# [12, -8, 18, -1, -21, 1]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.