你如何在python中找到元组的相似性?

时间:2012-08-03 19:58:57

标签: python tuples similarity

例如,如果我在python中有元组(1,2)和(3,2),有没有办法让程序返回0.5或1/2?我搜索过但却找不到任何东西。

2 个答案:

答案 0 :(得分:2)

>>> a = (1, 2)
>>> b = (3, 2)
>>> sum(x == y for x, y in zip(a, b)) / float(len(a))
0.5

仅在Python 2.x上调用float(),以避免整数除法。或者,您可以使用文件顶部的from __future__ import division

答案 1 :(得分:1)

对于一般的元组,您可能需要使用set

similarity = float(len(set(a).intersection(set(b))))/len(a)

当然使用len(a)表明“相似性”是关系型的,需要更好地定义。

在这种情况下,我回答了这个问题: a中的哪些元素也在b中?