2015-12-07 67 views
0

嘿,我在編碼方面很新,我想讓程序比較兩個列表元素並返回相同的元素。 到目前爲止,我編寫了這段代碼,但我遇到了算法問題,因爲它是設置操作,我無法找到具有相交功能的實際相同元素。檢查列表中的相同元素:python

在我的代碼中,我想查找每個字符串並找到它們的相似性。 我所試圖做的是:

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都)但是,我只得到一個A .. 如何改進此代碼以評估常見元素是兩個A而不是一個。我真的需要你的幫助..

回答

0

如果你只需要找到的2只平列出了交叉元素,這樣做:

a = "AGA" 
b = "ACA" 
c = set(a) & set(b) 
print(c) 
> {'A'} 
+0

嘿感謝名單菲利克斯的回答!不過,我想交點爲[A,A]這是兩個AGA和ACA –

2

我將定義相似性字間的漢明距離(我認爲是你想要

word1 = "AGA" 
word2 = "ACAT" 
score = sum(a==b for a,b in zip(word1,word2)) + abs(len(word1)-len(word2)) 
+0

嘿,這是它!我能不能再問一個問題,如果你喜歡什麼..如果有一種方法尋找與while循環的相似性,我真的想知道abou t it .. :) –

相關問題