首页 >后端开发 >Python教程 >如何在 Python 中找到两个嵌套列表的交集?

如何在 Python 中找到两个嵌套列表的交集?

DDD
DDD原创
2024-11-30 16:54:10868浏览

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