在 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]
广告