在两组Python3中删除常见的字符串元素



我正在尝试弄清楚如何在两组中删除共同值。

set1={":dog","cat","mouse"}
set2={"bird","dog","house","fish"}

所以结果只是{"cat","mouse","bird","house","fish"}

我正在寻找堆栈溢出,发现了这个删除两个列表之间的共同元素但是我不确定它是否针对数字或喜欢旧的python格式,因为它不起作用。

在我的代码中,我首先摆脱了:在set1中做

line = re.sub('[:]', '', str(set1))

然后我做到了:

res=list(set(line)^set(set2))

我也尝试了

res=list(line^set2)

但是输出非常奇怪,它是

[',', 'u', 'c', '{', "'", 'o', 's', 'g', 'house', 'd', 't', 'bird', 'fish', 'm', 'dog', 'a', 'e', ' ', '}']

有几种方法:

set1 = {":dog", "cat", "mouse"}
set2 = {"bird", "dog", "house", "fish"}
set1 = {k.replace(':', '') for k in set1}
# 3 equivalent methods
set1 ^ set2
set1.symmetric_difference(set2)
(set1 | set2) - (set1 & set2)
# {'bird', 'cat', 'fish', 'house', 'mouse'}

最新更新