打印两个字符串之间不同的元素
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())))
例如,有这两个字符串:
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())))