[英]Why does unified_diff method from the difflib library in Python leave out some characters?
我正在尝试检查行之间的差异。 这是我的代码:
from difflib import unified_diff
s1 = ['a', 'b', 'c', 'd', 'e', 'f']
s2 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'i', 'k', 'l', 'm', 'n']
for line in unified_diff(s1, s2):
print line
它打印:
---
+++
@@ -4,3 +4,9 @@
d
e
f
+g
+i
+k
+l
+m
+n
“a”、“b”和“c”发生了什么? 谢谢!
如果您查看unified_diff
代码,您会发现有关名为n
的参数的描述:
统一差异是一种显示行更改和几行上下文的紧凑方式。 上下文行数由“n”设置,默认为三。
在您的情况下, n
基本上表示字符数。 如果您为n
赋值,那么您将得到正确的 output。此代码:
from difflib import unified_diff
s1 = ['a', 'b', 'c', 'd', 'e', 'f']
s2 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'i', 'k', 'l', 'm', 'n']
for line in unified_diff(s1, s2,n=6):
print line
会产生:
---
+++
@@ -1,6 +1,12 @@
a
b
c
d
e
f
+g
+i
+k
+l
+m
+n
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.