當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。