如何解决打印两个字符串之间不同的元素
例如,有这两个字符串:
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())))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。