在列表中執行逐元素差異:Lambda 與列表理解
查找列表中相鄰元素之間的差異是常見操作編程。在 Python 中,有多種方法可以實現此目的,包括使用 lambda 表達式或列表推導式。
Lambda 表達式:
可以使用 lambda 表達式建立函數動態,然後可用於對清單中的每個元素進行操作。例如:
t = [1, 3, 6]
differences = list(map(lambda i, j: j - i, t[:-1], t[1:]))
在這種情況下,lambda函數lambda i, j: j - i從第(i 1) 個元素中減去第(i) 個元素。然後,map 函數將此函數應用於列表中的每對相鄰元素。
列表推導式:
列表推導式提供了一種簡潔的方法來創建基於列表的新列表在現有列表上。以下列表理解執行與上面的lambda 表達式相同的操作:
differences = [j - i for i, j in zip(t[:-1], t[1:])]
zip 函數將列表中的相鄰元素配對,並且列表理解迭代這些對。對於每一對 (i, j),它計算差異 j - i。
比較:
兩種方法都有其優點和缺點。 Lambda 表達式的用途更加廣泛,可以用於更廣泛的情況。然而,列表推導式通常更簡潔、更容易閱讀。
範例:
給定列表t = [1, 3, 6],兩個lambda 表達式列表理解將產生以下輸出:
[2, 3]
這是因為第一個差值(3 - 1) 為2,第二個差值(6 - 3)為 3。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3