繁体   English   中英

使用lambda表达式查找列表中每两个相邻元素之间的区别?

[英]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 looplambda 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM