在 Python 中查詢列表列表中的共同元素
列表的內部元素也可以是列表。在這種情況下,我們可能需要找出這些內部列表中的共同元素。在本文中,我們將找出實現此目標的方法。
使用 map 和交集
交集是在不同集合之間查詢共同元素的簡單數學概念。Python 具有 set 方法,該方法返回一個包含兩個或多個集合之間相似性的集合。因此,我們首先透過 map 函式將列表的元素轉換為集合,然後將 set 方法應用於所有這些轉換後的列表。
示例
listA = [['Mon', 3, 'Tue', 7,'Wed',4],['Thu', 5,'Fri',11,'Tue', 7],['Wed', 9, 'Tue', 7,'Wed',6]] # Given list print("Given list of lists : \n",listA) # Applying intersection res = list(set.intersection(*map(set, listA))) # Result print("The common elements among inners lists : ",res)
輸出
執行以上程式碼,我們將得到以下結果:
Given list of lists : [['Mon', 3, 'Tue', 7, 'Wed', 4], ['Thu', 5, 'Fri', 11, 'Tue', 7], ['Wed', 9, 'Tue', 7, 'Wed', 6]] The common elements among inners lists : ['Tue', 7]
使用 reduce 和 lambda
我們還可以應用 Python 中的 reduce 函式。此函式用於將作為引數傳遞給它的給定函式應用於傳遞序列中提到的所有列表元素。lambda 函式透過在應用 set 後迭代每個巢狀列表來找出共同元素。
示例
from functools import reduce listA = [['Mon', 3, 'Tue', 7,'Wed',4],['Thu', 5,'Fri',11,'Tue', 7],['Wed', 9, 'Tue', 7,'Wed',6]] # Given list print("Given list of lists : \n",listA) # Applying reduce res = list(reduce(lambda i, j: i & j, (set(n) for n in listA))) # Result print("The common elements among inners lists : ",res)
輸出
執行以上程式碼,我們將得到以下結果:
Given list of lists : [['Mon', 3, 'Tue', 7, 'Wed', 4], ['Thu', 5, 'Fri', 11, 'Tue', 7], ['Wed', 9, 'Tue', 7, 'Wed', 6]] The common elements among inners lists : ['Tue', 7]
廣告