嘿,我在编码方面这么新,我希望make程序比较两个列表元素并在其中返回相同的元素。 到目前为止,我写了这个代码,但我对算法有问题,因为它是设置操作,我找不到具有交叉函数的实际相同元素。
在我的代码中,我想查找每个字符串并找到它们的相似性。 我试图做的是:
input="AGA"
input1="ACA"
input=input_a
if len(input1) == len(input):
i = 0
while i < len(input1):
j = 0
while j < len(input_a):
input_length = list(input_a)
if input1[i] != input_a[j]:
if input1[i] in input_a:
print "1st %s" % input_length
print "2nd %s" % set(input1)
intersection = set(DNA_input_length).intersection(set(input1))
print intersection
total = len(intersection)
print (float(total) / float(
len(input1))) * 100, "is the similarity percentage"
break
DNA_input_length.remove(input_a[i])
j = j + 1
break
我的代码有什么问题实际上是我猜的交叉部分 我想看到每个列表中包含输入和输入1 = A,A(2 A&#39; s)的常见元素,但是,我只得到一个A .. 如何改进此代码以评估两个A而不是一个的常见元素。我真的需要你的帮助......
答案 0 :(得分:2)
我会将相似度定义为单词之间的汉明距离(我认为这就是你想要的
word1 = "AGA"
word2 = "ACAT"
score = sum(a==b for a,b in zip(word1,word2)) + abs(len(word1)-len(word2))
答案 1 :(得分:0)
如果您只需要找到2个平面列表的交叉元素,请执行:
a = "AGA"
b = "ACA"
c = set(a) & set(b)
print(c)
> {'A'}