在 Python 中从两个列表中删除公共元素
Remove common elements from two lists in Python
从两个列表中删除公共元素:
- 使用
set()
该类将第一个列表转换为set
对象。 - 使用该
symmetric_difference()
方法删除公共元素。 - 该方法将返回恰好位于其中一个列表中的所有元素。
主程序
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_difference
set
如果您需要获取在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
。