0

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

4

2 回答 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 回答