Python difflib报告了不必要的差异

时间:2015-02-11 11:09:07

标签: python difflib

我正在尝试使用difflib.Differ()比较两个序列。但是,我观察到一些我无法理解的不必要的差异。有人可以解释一下这种行为以及如何解决这个问题吗?

import difflib

a = "abc-123 Abcdef"
b = "abc-123 Abcdef-def"
a = a.strip("\n")
b = b.strip("\n")
a = a.split(" ")
b = b.split(" ")

d = difflib.Differ()
result = list(d.compare(a,b))
for s in result:
    if s[0] == ' ':
        continue
    print s

输出:

- Abcdef
+ Abcdef-def
?       ++++

为什么此处报告?差异?我希望只报告前两个差异(仅限更改)。

1 个答案:

答案 0 :(得分:2)

来自文档:

  

以'?'开头的行试图引导眼睛注射intraline   差异,并且不存在于任何输入序列中。

这意味着它只是一种标记差异所在的方式,它实际上并不是另一种差异。

https://docs.python.org/2/library/difflib.html