Python 从列表A中减去列表B,但保留列表A索引并使用difflib字符串相似度

Python 从列表A中减去列表B,但保留列表A索引并使用difflib字符串相似度,python,string,match,subtraction,difflib,Python,String,Match,Subtraction,Difflib,我需要一些Python方面的帮助。这不是经典的从列表A中减去列表B生成列表C。相反,我想查看列表A中不在列表B中的项目(单字中的城市名称)的索引,并将它们存储到新的列表C中。此外,列表B中匹配的项目与列表A中的项目不完全相同,它们来自OCR,所以他们几乎没有拼写错误,如果他们有90%个相似的话,我想考虑一个匹配。 e、 g 列表A:#所有列表项都是一个单词中的城市名称 0. Corneria 1. klandasco 2. Blue_Mars 3. Setiro 4. Jeti_lo 5. Ne

我需要一些Python方面的帮助。这不是经典的从列表A中减去列表B生成列表C。相反,我想查看列表A中不在列表B中的项目(单字中的城市名称)的索引,并将它们存储到新的列表C中。此外,列表B中匹配的项目与列表A中的项目不完全相同,它们来自OCR,所以他们几乎没有拼写错误,如果他们有90%个相似的话,我想考虑一个匹配。 e、 g

列表A:#所有列表项都是一个单词中的城市名称

0. Corneria
1. klandasco
2. Blue_Mars
3. Setiro
4. Jeti_lo
5. Neo_Tokyo
列表B:#城市名称有点拼写错误

0. lcandasco
1. Ne0_Tolcyo
所以,结果应该是

清单C:

[0, 2, 3, 4]
结果项并不重要(Corneria、Blue_Mars、Setiro、Jeti_lo),而是在进行减法后,我需要保留列表A中项目的原始索引

到目前为止,我正在做这个

a = ["aaa", "bbb", "ccc", "ddd", "ccc", "eee"]
b = ["bbb", "eee"]
c = [i for i, v in enumerate(a) if v not in b]
print(c)
输出

[0, 2, 3, 4]
但是我需要实现difflib部分,以便匹配具有90%相似性的项目,我如何仅使用纯python脚本(最好仅使用difflib)来实现这一点???

这是如何实现的:

from difflib import SequenceMatcher

max_ratio = 0.9

c = [i for i, v in enumerate(a) 
     if not any(map(lambda x: SequenceMatcher(None, v, x).ratio()>=max_ratio, b))]
使用了
fuzzyfuzzy
的代码段:

from fuzzywuzzy import fuzz

max_ratio = 90

c = [i for i, v in enumerate(a) 
     if not any(map(lambda x: fuzz.ratio(v, x)>=max_ratio, b))]

注意。在使用
fuzzyfuzzy
之前,您应该先安装它。

谢谢Alex Lisovoy,他工作得非常出色。希望我没有滥用,但是,如果我需要使用模糊模糊匹配,脚本会是什么样子?感谢高级。我添加了带有
fuzzyfuzzy
lib的代码片段