首頁 >後端開發 >Python教學 >如何在 Python 中找到兩個嵌套列表的交集?

如何在 Python 中找到兩個嵌套列表的交集?

DDD
DDD原創
2024-11-30 16:54:10895瀏覽

How Do You Find the Intersection of Two Nested Lists in Python?

決定巢狀清單的交集

找出兩個平面清單的交集是一個簡單的過程。然而,當處理嵌套列表時,它會變得更加複雜。本文提供了一種從兩個嵌套列表中提取公共元素並以嵌套格式呈現它們的解決方案。

要理解該解決方案,需要注意的是兩個集合或列表的交集是集合兩個集合共有的元素。對於嵌套列表,我們需要對每個列表的各個元素執行交集操作。

為了實現這一點,我們可以利用Python中內建的集合資料結構,它為尋找交叉點。考慮以下嵌套列表:

c1 = [1, 6, 7, 10, 13, 28, 32, 41, 58, 63]
c2 = [[13, 17, 18, 21, 32], [7, 11, 13, 14, 28], [1, 5, 6, 8, 15, 16]]

我們的目標是找到這兩個清單的交集並獲得以下結果:

c3 = [[13, 32], [7, 13, 28], [1, 6]]

為了實現這一點,我們可以轉換每個嵌套列表成其元素的集合。然後,我們可以對這些集合進行交集操作來識別公共元素。最後,我們可以將相交集轉換回嵌套列表,保留原始巢狀結構。

# Convert each nested list to a set
set1 = set(c1)
set2s = [set(list_) for list_ in c2]

# Find the intersection of the sets
intersected_sets = set1.intersection(*set2s)

# Convert the intersected set back into a nested list
c3 = [[element for element in list_ if element in intersected_sets] for list_ in c2]

按照以下步驟,我們可以有效地找到巢狀清單的交集,並將結果呈現為所需的結果格式。

以上是如何在 Python 中找到兩個嵌套列表的交集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn