在Python中获取两个列表之间的差异

393 阅读2分钟

两个列表之间的差异导致一个列表包含第一个列表中的项目,但不包含第二个列表。

比如说。

列表 [1, 3, 5] 和 **[5, 7, 9]**之间的差值 得到列表 [1, 2]。

而两个列表之间的对称差分则会产生一个包含任何一个列表中的元素但不在两个列表中的列表。

比如说。

[1, 3, 5] 和 **[5, 7, 9]**之间的对称 差是 [1, 3, 7, 9]。

现在我们来学习如何找到这些差异。

1.使用in和not in运算符。

in 运算符检查一个值是否存在于一个给定的序列中,并返回一个布尔值, 如果存在则 为 ,否则 为not in运算符的 工作方式正好相反。

例子。

list_1 = [1, 3, 5]
list_2 = [5, 7, 9]

list_difference = []

for ele in list_1:
   if ele not in list_2:
      list_difference.append(ele)

print(list_difference)

输出。

2.使用列表理解与'in'和'not in'。

这是一个替代上述方法的单行本。

例子。

list_1 = [1, 3, 5]
list_2 = [5, 7, 9]

list_difference = [ele for ele in list_1 if ele not in list_2]

print(list_difference)

输出。

3.使用set()。

集合是一种既 无序无索引的数据结构 。它们存储 由小括号内的逗号分隔 的唯一项目 的集合 。 集合不会存储重复的值,与列表不同

正如我们所知,集合不能存储重复的项目,我们明确地将列表转换为集合,并使用 减法运算符得到差值。现在我们 使用 list() 函数将这个差值转换成 列表类型

例子。

list_1 = [1, 3, 5]
list_2 = [5, 7, 9]

set_difference = set(list_1) - set(list_2)
list_difference = list(set_difference)

print(list_difference)

输出。

4.使用symmetric_difference()。

我们首先使用 set() 函数 将两个列表转换为集合 。然后我们通过 set_1.symmetric_difference(set_2) 找到对称差 。一旦我们得到对称差值,我们就 用 list() 函数将其转换为 列表类型

例子。

list_1 = [1, 3, 5]
list_2 = [5, 7, 9]

difference = set(list_1).symmetric_difference(set(list_2))
list_difference = list(difference)

print(list_difference)

输出。