获得set.difference()速度但使用模糊匹配的一种方法是什么?

时间:2014-07-12 18:23:01

标签: python string-matching

我可以将两个列表与嵌入式for循环进行比较,但速度非常慢。有没有办法使用set.difference()或其他一些技术来提高在两个列表之间找到潜在模糊匹配的速度?

这是我的样本

matchdict = dicttype

if isinstance(matchdict, collections.defaultdict):
    for i, u in enumerate(list1):
        for i1, u1 in enumerate(list2):
            if func(u, u1) >= cutoff:
                pair = (u, u1)
                #print pair
                #shortstr = min(pair, key=len)
                #longstr = max(pair, key=len)           
                #matchdict[shortstr] = longstr
                matchdict[u].append(u1)

elif isinstance(matchdict, dict):
    for i, u in enumerate(list1):
        for i1, u1 in enumerate(list2):
            if func(u, u1) >= cutoff:
                pair = (u, u1)
                #print pair
                shortstr = min(pair, key=len)
                longstr = max(pair, key=len)           
                #matchdict[shortstr] = longstr
                matchdict[u] = u1     

print 'format is: list1 : list2'

1 个答案:

答案 0 :(得分:0)

比较两个列表,你可以试试这个......

sorted(list1) == sorted(list2)

为了获得列表之间的差异,试试这个......

list(set(list1) - set(list2)) + list(set(list2) - set(list1))