打印两个字符串之间不同的元素

Print elements that are differents between two strings

例如,有这两个字符串:

test1 = "line1 \n line2 \nline3"
test2 = "line1 \n line2 \nline2"

如何打印与第一个元素不同的整个元素,并将其与第二个元素进行比较?

在这种情况下,我只想打印:

line3

我正在尝试使用以下代码来完成:

differences = [item for item in test1 if item not in test2]
print (differences)

但它只显示:

['3']

您似乎想在空格和换行符上拆分两个字符串,然后比较列表中每个索引处的元素并收集不同的元素?

如果是这种情况,我将假设您拥有的数据可以让您获得相同大小的列表。

你先split(),然后使用zip同时从两个列表中获取元素,并做一个简单的比较。

既然你的目标是列表理解,下面是我在代码中所说的所有内容:

test1 = "line1 \n line2 \nline3"
test2 = "line1 \n line2 \nline2"

difference = [item1 for item1, item2 in zip(test1.split(), test2.split()) if item1 != item2]

print(difference)

编辑:此外,您的代码的问题尤其在于您要逐个字符地处理字符串 test1,并检查 test2 中是否不存在所述字符.好吧,字符 3 是唯一没有的字符,所以这就是您收到该输出的原因。

你也可以使用set差异。

test1 = "line1 \n line2 \nline3"
test2 = "line1 \n line2 \nline2"

print(set(test1.split()).difference(set(test2.split())))