2017-10-24 7 views
0

私のコードはdocstringの最初の2つの例で動作しますが、3番目の例では機能しません。私は3番目のものが空のリストを返すことを望むが、私はどのようにするのか分からない。誰でもこの問題を解決するのを助けてくれますか?私は両方のリストのstrの値が同じであるが、異なる位置にある場合は 'w'を返し、同じ位置にある場合は空のリストを返します。正しい色を見つける

def find_colour_correct(answer, guess): 
''' 
(list, list) -> list 

単一文字STRSの二つのリストがのリストを返す考えるワットの最初のリストでstrと 同じ値を持つ第二のリストのSTRの数に等しい「の 数はどこだW」異なる位置。

私はあなただけで位置確認が欠けていると思う
>>> find_colour_correct(['d', 'c', 'b', 'a'], ['a', 'b', 'e', 'f']) 
['w', 'w'] 
>> find_colour_correct(['c', 'd', 'e', 'f'], ['g', 'h', 'd', 'i']) 
['w'] 
find_colour_correct(['a', 'b', 'c', 'd'], ['a', 'e', 'f', 'g']) 
[] 
''' 

result = [] 
for char in guess: 
    if char in answer: 
     result.append('w') 
return result 

答えて

0

result = [] 
def find_colour_correct(answer, guess): 
    for x in range(len(answer)): 
     if answer[x] in guess and answer[x] != guess[x]: 
      result.append('w') 
    return result 
+0

ええ、それは今働く、ありがとう – deezy

0

ダブルループが働くかもしれないと、あなたは、いくつかの項目のリストを持っている場合は問題ではありません。

def find_colour_correct(answer, guess): 
    result = [] 
    for index, char in enumerate(guess): 
     for index2, char2 in enumerate(answer): 
      if char == char2 and not index == index2: 
       result.append('w') 
    return result 

または(おそらく長すぎる)ワンライナーが好きな場合:

def find_colour_correct(answer, guess): 
    return ["w" for i, c in enumerate(guess) for i2, c2 in enumerate(answer) if c == c2 and not i == i2] 
関連する問題