ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

设置自定义比较器的交集?

2019-11-09 01:58:27  阅读:8  来源: 互联网

标签:python



我有套弦

set_a = {'abcd', 'efgh', 'ghij'}
set_b = {'abce', 'efgk', 'ghij'}

我想找到这两个集合之间的交集,但元素相等定义如下

def match(string_a, string_b, threshold=0.8):
    lcs_len = lcs(string_a, item_set_b)
    return (lcs_len / max(len(string_a), len(item_set_b))) > 0.8

基本上,如果lcs至少是字符串长度的80%,我们认为此匹配“足够”.我知道将自定义比较器传递给排序方法的工作原理是这样的,但是我在设置操作中没有找到自定义比较器的任何内容.

解决方法:

您可以遍历两个集合的笛卡尔积,然后保留两个集合中的元素并满足您的谓词

from itertools import product
{i for i,j in product(set_a, set_b) if i in set_b and match(i,j)}


标签:python

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有