如何使用Python删除列表中相同的元素
在本文中,我们将展示如何使用Python从列表中删除相同的元素。简单来说就是从两个列表中删除共同的元素。
以下是实现此任务的各种方法 –
- 使用remove ()函数
- 使用列表解析式
- 使用集合差异运算符
- 使用集合差异()函数
假设我们有两个包含某些元素的列表。现在我们将从两个列表中删除相同或共同的元素。
更多Python相关文章,请阅读:Python 教程
使用remove()函数
算法(步骤)
以下是执行所需任务的算法/步骤 –
- 创建一个变量来存储inputList_1。
-
创建另一个变量来存储inputList_2。
-
使用for循环,在inputList_1上遍历,创建一个使用[:]符号的副本()
-
使用条件语句if,使用in运算符检查inputList_1中的元素是否存在于inputList_2中。
-
使用remove()方法从inputList_1和inputList_2中删除该相应元素。
-
删除相同或共同元素后,打印InputList_1。
示例
以下程序使用remove()函数从两个列表中删除相同或共同元素,并返回结果列表。
#输入列表1
inputList_1 = [3, 6, 7, 1, 2]
#输入列表2
inputList_2 = [2, 4, 6, 7, 8, 9]
#traversing in input list 1(使用[:]创建浅层副本)
for element in inputList_1[:]:
#检查list1中的元素是否存在于list2中
if element in inputList_2:
#从inputList_1 & inputList_2中删除该元素
inputList_1.remove(element)
inputList_2.remove(element)
#在删除相同或共同的元素后,打印InputList_1
print("删除相同元素后InputList_1:", inputList_1)
输出
执行上述程序后,将生成以下输出 –
删除相同元素后InputList_1:[3, 1]
使用列表解析
以下程序从两个列表中删除相同或共同元素,并使用列表解析返回结果列表。
# 输入列表1
inputList_1 = [3, 6, 7, 1, 2]
# 输入列表2
inputList_2 = [2, 4, 6, 7, 8, 9]
# 使用列表推导式创建一个新列表,其中包含不在第二个列表中的元素
inputList_1 = [p for p in inputList_1 if p not in inputList_2]
# 删除相同或共同元素后打印InputList_1
print("去重后的InputList_1:", inputList_1)
输出
执行上述程序,将生成以下输出。
去重后的InputList_1: [3, 1]
使用集合差集运算符
算法(步骤)
以下是执行所需任务的算法/步骤:
- 创建一个函数 removeSameElements() ,它将从函数的参数inputList_1和inputList_2中删除共同元素。
-
使用 set() 函数(创建一个set对象。由于项目无序,因此集合列表将以随机顺序出现。它删除所有的重复项)将两个列表都转换为集合,并计算这两个集合的差异(以删除第一个列表中的相同元素)。然后使用 list() 函数将其转换为列表(将序列/可迭代项转换为列表)。
-
打印上述结果。
-
到 removeSameElements() 函数定义中,并传递inputList_1、inputList_2作为参数。
例子
以下程序使用集合差集运算符删除两个列表中的共同元素,并返回结果列表。
# 创建一个函数,它将从两个参数inputList_1和inputList_2中删除共同元素。
def removeSameElements(inputList_1, inputList_2):
# 将两个列表都转换为集合,并计算这两个集合的差异
# 将结果再转换为列表
inputList_1 = list(set(inputList_1) - set(inputList_2))
# 删除相同或共同元素后打印InputList_1
print("去重后的InputList_1:", inputList_1)
# 输入列表1
inputList_1 = [3, 6, 7, 1, 2]
# 输入列表2
inputList_2 = [2, 4, 6, 7, 8, 9]
# 通过传递两个输入列表来调用removeSameElements()函数
removeSameElements(inputList_1, inputList_2)
输出
在执行上述程序时,会生成以下输出−
InputList_1 after removing same elements: [1, 3]
使用Set difference() 函数
在Python中, difference() 方法返回一个集合,包含两个集合之间的差异,即返回的集合包括仅在第一个集合中出现的项目并排除同时存在于两个集合中的项目。
算法(步骤)
以下是执行所需任务的算法/步骤−
- 使用set() 函数将第一个列表转换为集合,然后使用 difference() 函数 (difference() 方法比较两个集合并返回是第一个集合唯一的项)计算此集合和第二个列表之间的差异,最后使用list() 函数将结果转换为列表。
-
打印删除相同或共同元素后的InputList_1。
示例
下面的程序使用set difference()函数从两个列表中删除相同或共同元素并返回结果列表−
# 输入列表1
inputList_1 = [3, 6, 7, 1, 2]
# 输入列表2
inputList_2 = [2, 4, 6, 7, 8, 9]
# 将第一个列表转换为集合,并使用difference()函数计算第二个列表的差异
# 将结果转换回列表
inputList_1 = list(set(inputList_1).difference(inputList_2))
# 删除相同或公共元素后打印InputList_1
print("InputList_1 after removing same elements:", inputList_1)
输出
在执行上述程序时,会生成以下输出−
InputList_1 after removing same elements: [1, 3]
结论
在本文中,我们学习了四种不同的方法来从第一个列表和第二个列表中删除相同的元素。我们还学习了如何将列表转换为集合和集合转换为列表。我们学习了如何制作浅复制并如何遍历可迭代的浅复制(列表)。