Python-获得字符串之间的区别

发布于 2021-01-29 16:36:40

从两个多行字符串中获取差异的最佳方法是什么?

a = 'testing this is working \n testing this is working 1 \n'
b = 'testing this is working \n testing this is working 1 \n testing this is working 2'

diff = difflib.ndiff(a,b)
print ''.join(diff)

这将产生:

  t  e  s  t  i  n  g     t  h  i  s     i  s     w  o  r  k  i  n  g     
     t  e  s  t  i  n  g     t  h  i  s     i  s     w  o  r  k  i  n  g     1     
+  + t+ e+ s+ t+ i+ n+ g+  + t+ h+ i+ s+  + i+ s+  + w+ o+ r+ k+ i+ n+ g+  + 2

准确获取的最佳方法是:

testing this is working 2

正则表达式是这里的解决方案吗?

关注者
0
被浏览
37
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。
    a = 'testing this is working \n testing this is working 1 \n'
    b = 'testing this is working \n testing this is working 1 \n testing this is working 2'
    
    splitA = set(a.split("\n"))
    splitB = set(b.split("\n"))
    
    diff = splitB.difference(splitA)
    diff = ", ".join(diff)  # ' testing this is working 2, more things if there were...'
    

    从本质上讲,使每个字符串由一组行组成,并采用集合差-即B中所有不在A中的东西。然后取该结果并将其全部连接到一个字符串中。

    编辑:这是说@ShreyasG说的一种糊涂方式-[如果x不在y中,则x用于x] …



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看