例如,如果我在 python 中有元组 (1,2) 和 (3,2),有没有办法让程序返回 0.5 或 1/2?我已经搜索过,但找不到任何东西。
问问题
622 次
2 回答
2
>>> a = (1, 2)
>>> b = (3, 2)
>>> sum(x == y for x, y in zip(a, b)) / float(len(a))
0.5
该float()
调用仅在 Python 2.x 上是必需的,以避免整数除法。或者,您可以from __future__ import division
在文件顶部使用。
于 2012-08-03T20:03:45.337 回答
1
对于一般的元组对,您可能需要使用set
:
similarity = float(len(set(a).intersection(set(b))))/len(a)
当然,使用len(a)
表明“相似性”是相关的,需要更好地定义。
在这种情况下,我已经回答了这个问题:a 中的元素有多少部分也在 b 中?
于 2012-08-03T20:05:09.520 回答