对于您的简单示例:
import difflibdef show_diff(seqm): """Unify operations between two compared stringsseqm is a difflib.SequenceMatcher instance whose a & b are strings""" output= [] for oppre, a0, a1, b0, b1 in seqm.get_oppres(): if oppre == 'equal': output.append(seqm.a[a0:a1]) elif oppre == 'insert': output.append("<ins>" + seqm.b[b0:b1] + "</ins>") elif oppre == 'delete': output.append("<del>" + seqm.a[a0:a1] + "</del>") elif oppre == 'replace': raise NotImplementedError, "what to do with 'replace' oppre?" else: raise RuntimeError, "unexpected oppre" return ''.join(output)>>> sm= difflib.SequenceMatcher(None, "lorem ipsum dolor sit amet", "lorem foo ipsum dolor amet")>>> show_diff(sm)'lorem<ins> foo</ins> ipsum dolor <del>sit </del>amet'这适用于字符串。您应该决定如何处理“替换”操作码。



