使用lambda表达式找出列表中每两个相邻元素之间的差异?

时间:2017-03-18 00:03:22

标签: python list lambda

我有一个这样的清单:

lst = [1, 13, 5, 23, 22, 1, 2]

我想找到每两个相邻元素之间的区别,使用lambda表达式得到这个:

differences = [12, -8, 18, -1, -21, 1]

我该怎么做?谢谢。

3 个答案:

答案 0 :(得分:2)

inline for looplambda一起使用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])) 。循环将遍历索引,然后使用索引访问提供的数组中的数字,添加相邻索引。

<script src="popup.js"></script>
<script src="jquery.min.js"></script>

答案 1 :(得分:0)

为什么lambda表达?对于内联解决方案,您可以使用列表理解:

[lst[i+1]-lst[i] for i in range(len(lst)-1)]

答案 2 :(得分:0)

或者你可以使用map:

map(lambda pair: pair[1] - pair[0], zip(lst[:-1], lst[1:]))
如果您想要一个列表,

将列表应用于结果:

list(_)
# [12, -8, 18, -1, -21, 1]