📅  最后修改于: 2023-12-03 15:24:20.393000             🧑  作者: Mango
很多时候,我们需要在两个列表之间找出彼此不包含的元素。在Python中,我们可以使用一些简单的方法来实现这个任务。在本文中,我们将介绍如何在Python的两个列表中找到不常见的元素。
最简单的方法是使用 set 对象来解决这个问题。我们可以把两个列表转换为 set 对象,然后取它们之间的差集。
list_a = [1, 2, 3, 4]
list_b = [2, 3, 5, 6]
set_a = set(list_a)
set_b = set(list_b)
result = set_a.symmetric_difference(set_b)
print(list(result))
执行以上代码后,将输出 [1, 4, 5, 6]
。
这里我们使用了 set 对象的 symmetric_difference()
方法来找出两个列表之间的差异。这个方法将返回两个集合的对称差集,即只出现在其中一个集合中的元素。
如果您不想使用 set 对象,您可以使用列表推导式来执行相同的操作。在本方法中,我们将迭代每个列表中的元素,并检查它是否在另一个列表中出现。如果没有出现,我们把它添加到新的列表中。
list_a = [1, 2, 3, 4]
list_b = [2, 3, 5, 6]
result = [i for i in list_a if i not in list_b] + [i for i in list_b if i not in list_a]
print(result)
执行以上代码后,将输出 [1, 4, 5, 6]
。
在这个代码示例中,我们使用两个列表推导式来迭代两个列表,并检查每个元素是否存在于另一个列表中。如果存在,我们忽略它。如果不存在,我们将它添加到新的列表中。
我们已经介绍了如何在 Python 的两个列表中找到不常见的元素。使用 set 对象或者列表推导式,我们可以很容易地找出两个列表之间的差距。这个技巧在数据科学和机器学习中非常有用,因为它可以让我们快速地找出两个数据集之间的差异。