检查列表中的相同元素:python

时间:2015-12-07 20:27:01

标签: python list recursion while-loop set

嘿,我在编码方面这么新,我希望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而不是一个的常见元素。我真的需要你的帮助......

2 个答案:

答案 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'}