我有一個列表,諸如這樣的:使用lambda表達式查找列表中每兩個相鄰元素之間的差異?
lst = [1, 13, 5, 23, 22, 1, 2]
而且我想用一個lambda表達式得到這個發現每兩個相鄰元素之間的區別:
differences = [12, -8, 18, -1, -21, 1]
我將如何做到這一點?謝謝。
我有一個列表,諸如這樣的:使用lambda表達式查找列表中每兩個相鄰元素之間的差異?
lst = [1, 13, 5, 23, 22, 1, 2]
而且我想用一個lambda表達式得到這個發現每兩個相鄰元素之間的區別:
differences = [12, -8, 18, -1, -21, 1]
我將如何做到這一點?謝謝。
爲什麼使用lambda表達式?對於在在線解決方案,您可以使用列表理解:
[lst[i+1]-lst[i] for i in range(len(lst)-1)]
使用的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]))
或者您可以使用地圖:
map(lambda pair: pair[1] - pair[0], zip(lst[:-1], lst[1:]))
應用列表發送給結果,如果你想有一個清單:
list(_)
# [12, -8, 18, -1, -21, 1]
是否必須lambda表達式?請問爲什麼? – Denziloe
可能重複[在Python中迭代一個列表作爲pair(current,next)](http://stackoverflow.com/questions/5434891/iterate-a-list-as-pair-current-next-in-python) – pvg