注册 登录
编程论坛 Python论坛

求助!!关于hamming distance(海明距离)的python!!!

beiyuame 发布于 2013-01-23 20:30, 2022 次点击
老师给我们一个题目,写一个方程,可以求出两个向量的hamming distance。 原题如下:
A function which computes the Hamming distance between two vectors.  
这个题目的前提条件是,2个向量是有同样的dimension的

我现在学的编程的语言不是很多,我看到维基百科上有个python的方程如下:
def hamming_distance(s1, s2):
    assert len(s1) == len(s2)
    return sum(ch1 != ch2 for ch1, ch2 in zip(s1, s2))

写得很好,但是我还没有学到 assert 和zip, 我现在自己写了一个是这样的:我在写方程之前也举了x和y的例子来验证我写得对不对:

>>> x=(1,3,5)
>>> y=(1,2,4)
>>> for i in range(len(x)):
    if x[i]!=y[i]:
        print(x[i])

        
3
5

但是我想得到的是他们不同的个数,应该是2,而不是把不同的数写出来。 但是我现在不知道如果最后写一个code,可以得出那个数量,而不是把不同的数写出来。



希望有人能帮我想出那个能得出数量的code, 或者能否写个简单的求海明距离的python? 简单不是指行数很少,而是指用到的是一些常用的,简单的,初学者会用到的code

谢谢你们啦!!!!
1 回复
#2
木头lbj2013-02-17 22:01
程序代码:
>>> x = (1,3,5)
>>> y = (1,2,4)
>>> num = 0
>>> for i in range(len(x)):
...     if x[i] != y[i]:
...         num = num + 1
...
>>> print num
2

按照你的意思应该是这样。加一个变量就行。你这问题一分都没。。。。真是。。。。
这里python人气真是差啊。。。
1