📜  获取两个列表python的所有不同元素(1)

📅  最后修改于: 2023-12-03 15:41:27.285000             🧑  作者: Mango

获取两个列表Python的所有不同元素

有时候我们需要获取两个列表中不同的元素,这在Python中非常简单。本文将介绍两种获取两个列表中不同元素的方法:使用set和使用列表生成器。

方法一:使用set

我们可以使用Python内置的set函数将两个列表转换为集合,然后使用集合差集获取不同的元素。示例代码如下:

list1 = [1, 2, 3, 4, 5]
list2 = [5, 6, 7, 8, 9]

set1 = set(list1)
set2 = set(list2)

diff1 = set1.difference(set2)
diff2 = set2.difference(set1)

print(list(diff1.union(diff2))) # 输出 [1, 2, 3, 4, 6, 7, 8, 9, 5]

首先将列表 list1 和 list2 分别转换为集合 set1 和 set2。然后,我们使用 set1.difference(set2) 获取在 set1 中但不在 set2 中的元素,使用 set2.difference(set1) 获取在 set2 中但不在 set1 中的元素。最后,将两个差集合并得到所有不同元素。

方法二:使用列表生成器

我们可以使用列表生成器,将不同的元素从两个列表中抓出来,然后使用列表的extend方法将它们合并。示例代码如下:

list1 = [1, 2, 3, 4, 5]
list2 = [5, 6, 7, 8, 9]

result = []

[result.append(i) for i in list1 if i not in list2]
[result.append(i) for i in list2 if i not in list1]

print(result) # 输出 [1, 2, 3, 4, 6, 7, 8, 9]

我们将所有不同的元素保存在一个名为 result 的列表中。使用列表生成器,我们检查每个列表中的元素是否存在于另一个列表中,如果不在,就将它添加到 result 列表中。最后,我们输出 result 列表。

这两种方法都可以很方便地获取两个不同列表中的所有不同元素。选择哪种方法取决于你的需求和个人喜好。