Jaccard距离 - 联合和列表的交集

时间:2012-11-17 07:31:19

标签: python union intersection

我正在使用Jaccard距离实现层次聚类。我试图找到Jaccard的交易以二进制表示。例如:

t1=['0','1','1','0','1']

t2=['1','0','1','0','0']

我看了this SO question,这与我想要的非常相似,但我得不到正确答案。

基本上这就是我要找的东西:
1.找到上述2个列表的交集和并集。

除了查看众多其他在线资源外,我还尝试了以下内容:

1. s1=sets.Set(['0','1','1','0','1'])
   s2=sets.Set(['1','0','1','0','0'])  
2. s1.intersection(s2)  ---> Set(['1', '0'])  
   s1.union(s2)         ---> Set(['1', '0'])  
3. Set(s1) & Set(s2)      ---> TypeError: unsupported operand type(s) for /: 'Set' and 'Set'

   Set(s1) | Set(s2)

请指导我。

感谢。

1 个答案:

答案 0 :(得分:2)

正如你所说:

s1=sets.Set(['0','1','1','0','1'])

让我们检查一下s1:

print s1
---->Set(['1', '0'])

sets 模块提供了用于构造和操作唯一元素的无序集合的类。所以,你的s1和s2实际上是一样的。