从 Python 中的两个列表中删除公共元素

在 Python 中从两个列表中删除公共元素

Remove common elements from two lists in Python

从两个列表中删除公共元素:

  1. 使用set()该类将第一个列表转换为set对象。
  2. 使用该symmetric_difference()方法删除公共元素。
  3. 该方法将返回恰好位于其中一个列表中的所有元素。
主程序
list1 = ['a', 'b', 'c'] list2 = ['a', 'z', 'c'] result = list(set(list1).symmetric_difference(list2)) print(result) # 👉️ ['b', 'z']

我们使用set()该类将第一个列表转换为set对象。

set()类接受一个可迭代的可选参数,并返回一个新对象set,其中的元素取自可迭代对象。

主程序
list1 = ['a', 'b', 'c'] print(set(list1)) # 👉️ {'c', 'a', 'b'}
Set 对象存储唯一元素的无序集合并实现方法。 symmetric_difference()

该方法返回恰好位于一个对象symmetric_difference中的所有元素。set

主程序
list1 = ['a', 'b', 'c'] list2 = ['a', 'z', 'c'] result = list(set(list1).symmetric_difference(list2)) print(result) # 👉️ ['b', 'z']

最后一步是使用list()类将set对象转换为列表。

您还可以使用插入^符号从两个列表中删除公共元素。

主程序
list1 = ['a', 'b', 'c'] list2 = ['a', 'z', 'c'] result = list(set(list1) ^ set(list2)) print(result) # 👉️ ['b', 'z']
插入符^方法的简写,但运算符两边的值必须是对象。 symmetric_differenceset

如果您需要获取在list1但不在的元素list2,请使用该
difference()方法。

主程序
list1 = ['a', 'b', 'c'] list2 = ['a', 'z', 'c'] result = list(set(list1).difference(list2)) print(result) # 👉️ ['b']

Set 对象有一个
difference()
方法,它返回一个新
set的,其中的元素set不在提供的可迭代对象中。

换句话说,set(list1).difference(list2)返回一个新set的,其中包含list1不在 中的项目list2