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