我有两条短信。你知道吗
T0 ID A
T1 ID B
T2 ID C
T4 ID D
以及
T5 ID A
T6 ID E
T7 ID F
T8 ID D
我真正感兴趣的只是比较身份证的顺序,字母的不同。但是我想在输出中保留每个元素的第一部分,这样我可以在以后的其他分析中使用它
@-1,2 +1,2
-T2 ID B
-T3 ID C
+T6 ID E
+T7 ID F
做这种区别最好的方法是什么?最好是使用difflib python库。你知道吗
另外,假设不是2个文本,而是2个对象列表,每个对象都有2个属性(object.t返回T1,对象ID返回B),我只想对对象列表中的ID属性执行diff。我能做这样的手术吗?也许这应该是一个不同的问题。你知道吗
谢谢
您可以创建
str
的子类,对其进行散列和比较,就好像它只包含其ID:然后可以将普通字符串转换为
IdString
对象并将其传递给difflib
,如下所示:产生非常接近你想要的输出:
(你的问题中的例子是
@-1,2 +1,2
,但我无法准确地再现,因为我不知道diff是什么样式,在diff输出中行号从1开始。)相关问题 更多 >
编程相关推荐