在列表中執行逐元素差異:Lambda 與列表理解
查找列表中相鄰元素之間的差異是常見操作編程。在 Python 中,有多種方法可以實現此目的,包括使用 lambda 表達式或列表推導式。
Lambda 表達式:
lambda 表達式可用於建立函數即時運行,然後可用於對清單中的每個元素進行操作。例如:
<code class="python">t = [1, 3, 6] differences = list(map(lambda i, j: j - i, t[:-1], t[1:]))</code>
在這種情況下,lambda 函數 lambda i, j: j - i 從第 (i) 個元素中減去第 (i) 個元素。然後,映射函數將此函數應用於清單中的每對相鄰元素。
列表理解:
列表理解提供了一種簡潔的方法來創建基於新列表的方法在現有列表上。以下列表理解執行與上面的 lambda 表達式相同的操作:
<code class="python">differences = [j - i for i, j in zip(t[:-1], t[1:])]</code>
zip 函數將列表中的相鄰元素配對,並且列表理解對這些對進行迭代。對於每一對 (i, j),它計算差異 j - i。
比較:
兩種方法都有其優點和缺點。 Lambda 表達式的用途更加廣泛,可以用於更廣泛的情況。然而,列表推導式通常更簡潔、更容易閱讀。
範例:
給定列表t = [1, 3, 6],lambda 表達式列表理解將產生以下輸出:
[2, 3]
這是因為第一個差值(3 - 1) 是2,第二個差值(6 - 3) 是3。
以上是Lambda 與清單推導式:哪一種最適合 Python 清單中的元素差異?的詳細內容。更多資訊請關注PHP中文網其他相關文章!