0

我正在尝试使用 比较两个序列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
?       ++++

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

4

1 回答 1

2

从文档中:

以“?”开头的行 试图将眼睛引导到行内差异,并且在任何一个输入序列中都不存在。

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

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

于 2015-02-11T11:32:32.310 回答