2017-02-23 33 views
0

我想知道如何在不使用正則表達式的情況下在字符串列表中找到雙字母的外觀。以下是我到目前爲止。如何在不使用正則表達式的情況下從列表中的字符串打印雙字母而不使用正則表達式

word="kookss" 
new_words=["laal","mkki"] 

def double_letter(word): 
     for i in range(len(word)-1): 
      if word[i]== word[i+1]: 
       return (word[i],word[i+1]) 
print(double_letter(word)) 
for w in range(len(new_words)-1): 
     print(double_letter(new_words)) 

output : 
["OO","ss"] 
["aa"] 
["kk"] 

回答

2
word="kookss" 
new_words=["laal","mkki"] 

def double_letter(word): 
    # each double letter found should be put in this list. 
    double_letters = [] 
    for i in range(len(word)-1): 
     if word[i]== word[i+1]: 
      double_letters.append(word[i] + word[i+1]) 
    return double_letters 

print(double_letter(word)) 

for w in new_words: 
    # for each word `w` in list `new_words` call double_letter method 
    print(double_letter(w)) 

輸出:

['oo', 'ss'] 
['aa'] 
['kk'] 

你的代碼是不工作,因爲:

for w in range(len(new_words)-1): 
     print(double_letter(new_words)) 

此代碼你逝去的new_words(這是一個列表)來double_letter方法是期待一個單詞。 突然word[i]== word[i+1]變得"laal" == "mkki"哪個是假的所以你的回報是None

你通過相同的列表兩次,所以你得到2 None