当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python difflib.SequenceMatcher.get_opcodes用法及代码示例


用法:

get_opcodes()

返回说明如何将 a 转换为 b 的 5 元组列表。每个元组的格式为 (tag, i1, i2, j1, j2) 。第一个元组有 i1 == j1 == 0 ,其余元组的 i1 等于前一个元组的 i2 ,同样, j1 等于前一个 j2

tag 值是字符串,具有以下含义:

意义

'replace'

a[i1:i2] 应替换为 b[j1:j2]

'delete'

a[i1:i2] 应该被删除。请注意,在这种情况下,j1 == j2

'insert'

b[j1:j2] 应该插入到 a[i1:i1] 。请注意,在这种情况下,i1 == i2

'equal'

a[i1:i2] == b[j1:j2](sub-sequences 相等)。

例如:

>>> a = "qabxcd"
>>> b = "abycdf"
>>> s = SequenceMatcher(None, a, b)
>>> for tag, i1, i2, j1, j2 in s.get_opcodes():
...     print('{:7}   a[{}:{}] --> b[{}:{}] {!r:>8} --> {!r}'.format(
...         tag, i1, i2, j1, j2, a[i1:i2], b[j1:j2]))
delete    a[0:1] --> b[0:0]      'q' --> ''
equal     a[1:3] --> b[0:2]     'ab' --> 'ab'
replace   a[3:4] --> b[2:3]      'x' --> 'y'
equal     a[4:6] --> b[3:5]     'cd' --> 'cd'
insert    a[6:6] --> b[5:6]       '' --> 'f'

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 difflib.SequenceMatcher.get_opcodes。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。