5

文字列の 2 つのリストの違いを比較したいと思います。私の目的では、空白はノイズであり、これらの違いを示す必要はありません。difflib のドキュメントを読むと、「デフォルト [for charjunk] はモジュールレベルの関数IS_CHARACTER_JUNK()であり、空白文字が除外されます」。完璧ですが、動作していない、または大きな違いがあるとは思わないことを除いて (<-しゃれ!)。

import difflib
A = ['3  4\n']
B = ['3 4\n']
print ''.join(difflib.ndiff(A, B))  # default: charjunk=difflib.IS_CHARACTER_JUNK

出力:

- 3  4
?  -
+ 3 4

他にもいくつかのオプションを試しましたlinejunkが、空白の結果としての違いを実際に無視するものはありません。私は何のcharjunkためにあるのかについて間違った解釈をしていますか?

補足として、この制限を回避するには、文字列を前処理して、re.sub(r'\W+', ' ', 'foo\t bar').

4

0 に答える 0