例如,如果我在python中有元组(1,2)和(3,2),有没有办法让程序返回0.5或1/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中?