Python |多个列表的交集
给定两个列表,编写一个 Python 程序来查找给定的两个列表之间的交集。
示例:
Input : lst1 = [['a', 'c'], ['d', 'e']]
lst2 = [['a', 'c'], ['e', 'f'], ['d', 'e']]
Output : [['a', 'c'], ['d', 'e']]
Input : lst1 = [[1, 5, 7], [2, 3], [6, 9], [4, 8]]
lst2 = [[9, 3], [2, 3], [6, 9]]
Output : [[2, 3], [6, 9]]
接近#1 : 幼稚(列表理解)
寻找列表交集的强力或天真方法是使用列表理解或简单的循环的。
# Python3 program to find
# Intersection of list of lists
def intersection(lst1, lst2):
return [item for item in lst1 if item in lst2]
# Driver code
lst1 = [['a', 'c'], ['d', 'e']]
lst2 = [['a', 'c'], ['e', 'f'], ['d', 'e']]
print(intersection(lst1, lst2))
Output:
[['a', 'c'], ['d', 'e']]
进场#2 : 使用集合路口()
与天真的方法相比,这是一种有效的方法。我们首先使用 map() 将这两个列表列表转换为元组列表,因为 Python 集与元组兼容,而不是列表。然后我们简单地找到这两个列表的集合交集()。
# Python3 program to find
# Intersection of list of list
def intersection(lst1, lst2):
tup1 = map(tuple, lst1)
tup2 = map(tuple, lst2)
return list(map(list, set(tup1).intersection(tup2)))
# Driver code
lst1 = [['a', 'c'], ['d', 'e']]
lst2 = [['a', 'c'], ['e', 'f'], ['d', 'e']]
print(intersection(lst1, lst2))
Output:
[['d', 'e'], ['a', 'c']]
版权属于:月萌API www.moonapi.com,转载请注明出处