簡體   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