2016-02-11 53 views
1

我試圖比較兩個不同字符串(等等)的第一個字符以基於這些結果形成一個新的字符串。這是我嘗試過的,但是它將每個列表的每個元素進行比較。如何比較Python中兩個字符串中的單個字符3

def compare(a,b): 
    s = "" 
    for x in a: 
     for y in b: 
      if x == y: 
       s+=str(x) 
      else: 
       s+=str(y) 

這似乎是這樣一個簡單的問題,但我卡住了。

+3

你只是寫什麼將y複製到s中。 你究竟在做什麼? – Prune

+0

您將一個字符串中的每個字符與另一個字符串中的每個字符進行比較,而不僅僅是相應的字符。 – Barmar

回答

3

使用ZIP:

def compare(a, b): 
    for x, y in zip(a, b): 
     if x == y: 
      ... 
1

你或許在尋找一些類似的與邏輯?它選擇的字母字符早些時候從每個輸入字符串:

def compare(a,b): 
    s = "" 
    for i in range(len(a)): 
     if a[i] < b[i]: 
      s+=str(a[i]) 
     else: 
      s+=str(b[i]) 
    return s 

print compare ("seven", "eight") 

輸出:

eegen 

這樣做的一個行版本

return ''.join(a[i] if a[i] < b[i] else b[i] for i in range(len(a)))