gpt4 book ai didi

python - 删除两个列表中的公共(public)元素

转载 作者:太空狗 更新时间:2023-10-30 02:12:38 25 4
gpt4 key购买 nike

我有两个排序的正整数列表,它们可以有重复的元素,我必须删除匹配的数字对,每个列表一个:

a=[1,2,2,2,3]
b=[2,3,4,5,5]

应该变成:

a=[1,2,2]
b=[4,5,5]

也就是说,2 和 3 已被删除,因为它们出现在两个列表中。

这里不能使用集合交集,因为有重复的元素。

我该怎么做?

最佳答案

要删除同时出现在两个列表中的元素,请使用以下命令:

for i in a[:]:
if i in b:
a.remove(i)
b.remove(i)

要创建一个为您完成的函数,只需执行以下操作:

def removeCommonElements(a, b):
for e in a[:]:
if e in b:
a.remove(e)
b.remove(e)

或者返回新列表而不编辑旧列表:

def getWithoutCommonElements(a, b): # Name subject to change
a2 = a.copy()
b2 = b.copy()
for e in a:
if e not in b:
a2.remove(e)
b2.remove(e)
return a2, b2

然而,前者可以用 removeCommonElements 替换,如下所示:

a2, b2 = a.copy(), b.copy()
removeCommonElements(a2, b2)

这将保留 a 和 b,但创建没有共同元素的副本。

关于python - 删除两个列表中的公共(public)元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14275986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com