我有一个这样的清单:
lst = [1, 13, 5, 23, 22, 1, 2]
我想找到每两个相邻元素之间的区别,使用lambda表达式得到这个:
differences = [12, -8, 18, -1, -21, 1]
我该怎么做?谢谢。
答案 0 :(得分:2)
inline for loop
与lambda
一起使用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]