获取两个列表列表或空列表的交集

我有两个形状相同的列表列表。


list1 = [[1,2,3], [], [4,5], []]

list2 = [[1,2], [7], [4,5], []]

我需要这个列表列表:


[[1,2], [], [4,5], []]

我怎样才能得到它?


HUWWW
浏览 236回答 3
3回答

呼如林

假设list1和list2中的每个列表只包含不同的元素,并且您不关心输出中元素的顺序,您可以使用set交集来帮助您:output = [list(set(l1) & set(l2)) for l1, l2 in zip(list1, list2)]

慕村225694

通过较短列表的索引获取每个子列表。[list(set(list1[x]) & set(list2[x])) for x in range(min(len(list1), len(list2)))]# [[1, 2], [], [4, 5], []]这将产生一个与最短输入长度相同的列表。

九州编程

循环并使用集合:list1 = [[1,2,3], [], [4,5], []]list2 = [[1,2], [7], [4,5], []]intersections = [list(set(s1)&set(s2)) for s1, s2 in zip(list1, list2)]输出:[[1, 2], [], [4, 5], []]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python