gpt4 book ai didi

Python difflib,获取偏移量

转载 作者:太空宇宙 更新时间:2023-11-04 05:47:59 29 4
gpt4 key购买 nike

在带有 difflib 的 python 中有没有一种方法可以获取更改的偏移量以及更改本身?

我有以下内容:

import difflib

text1 = 'this is a sample text'.split()
text2 = 'this is text two.'.split()

print list(difflib.ndiff(text1, text2))

打印:

['  this', '  is', '- a', '- sample', '  text', '+ two.']

我还可以获得相应更改的偏移量吗?天真的解决方案只是搜索更改,但如果字符串因重复项而变长,那将行不通。

最佳答案

SequenceMatcher.get_matching_blocks() 可能有帮助。它返回描述匹配子序列的三元组列表。这些索引又可用于查找差异的位置。

>>> for block in s.get_matching_blocks():
... print "a[%d] and b[%d] match for %d elements" % block
a[0] and b[0] match for 8 elements
a[8] and b[17] match for 21 elements
a[29] and b[38] match for 0 elements

https://docs.python.org/2/library/difflib.html#difflib.SequenceMatcher.get_matching_blocks https://docs.python.org/2/library/difflib.html#sequencematcher-examples

关于Python difflib,获取偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31389833/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com