Python比较字符串中的不同之处并输出
时间: 2024-10-19 13:03:52 浏览: 15
Python中有多种方式可以比较字符串的差异,并生成结果。其中最常见的是使用`difflib`模块,它提供了一些函数用于计算两个序列之间的差异。
1. ` difflib.Differ()`:创建一个Differ对象,这个对象可以对两个字符串进行逐行比较,返回一个迭代器,每个元素是一个三元组,表示两者的差异(添加、删除或保持不变)。
```python
import difflib
str1 = "这是原始字符串"
str2 = "这是修改后的字符串"
d = difflib.Differ()
diffs = d.compare(str1.splitlines(), str2.splitlines())
for diff in diffs:
print(diff)
```
输出可能是像这样的:
```
- 这是原始字符串
+ 这是修改后的字符串
```
2. 使用`SequenceMatcher`:`difflib.SequenceMatcher`则更适合比较整个字符串的相似度,包括部分匹配和插入/删除操作。
```python
from difflib import SequenceMatcher
sm = SequenceMatcher(None, str1, str2)
print(sm.ratio()) # 输出相似度比例,范围0-1
print(sm.get_opcodes()) # 输出操作码列表,如'MO', 'DE', 'AD'
```
阅读全文