在列表驗證中合併多個項目
最初的問題圍繞著尋找一種有效的方法來確定給定列表中是否存在任何項目在另一個清單中。本文沒有採用自訂函數,而是探討了解決此場景的替代方法。
方法1:列表理解
如下例所示,可以使用列表來理解隔離第一個列表中存在於第二個列表中的項目:
L1 = [2, 3, 4] L2 = [1, 2] [i for i in L1 if i in L2]
此方法會產生一個符合項目列表,如果包含元素,則該列表的布林值為True。在給定的範例中,它將傳回 [2]。
方法 2:設定交集
或者,集合可用於更有效的清單比較。透過將每個列表轉換為集合,可以如下找到它們的交集:
S1 = set(L1) S2 = set(L2) S1.intersection(S2)
與列表理解類似,兩個集合的交集僅包含匹配的元素。由於空集合計算結果為 False,因此交集結果可以直接用作真值。
邏輯計算考慮
需要注意的是,存在一個無論哪種方法,匹配項都足以返回 True。因此,此方法可能不適合所有專案都需要存在的場景。
以上是是否有更有效的方法來檢查一個清單中的任何項目是否存在於另一個清單中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!