我有涉及彼此兩個功能 - 第一個將刪除相同,並且在同一位置的字符,並返回一個不匹配的:比較2所列出並返回匹配
def remove(l1, l2):
r = []
for char in range(len(l1)):
if l1[char] != l2[char]:
r.append(l1[char])
return r
雖然此函數遍歷兩個列表,並使用前一個函數刪除相同的值。然後使用剩下的東西,它會找到b中相同的值(但它們不需要處於相同的位置)。
def search(a, b):
found = []
elim = remove(a, b)
for char in elim:
if char in b:
find = 'y'
found.append(find)
return found
雖然我能夠回到「正確比y是爲我用其他的例子,當我有相同的價值不止一個突破。如果列表'b'中只有1個'V',而列表'a'中只有2個''',我只希望1個'y'返回它,而不是2個。由於我不確定從這裏去哪裏,我的函數返回這個:
search(['L', 'F', 'V', 'V'], ['V', 'F', 'O', 'R'])
Expected:
['y']
Got:
['y', 'y']
在此先感謝!
在'remove()'中,您將int整理到列表中,而不是字符。 – 2017-10-29 05:54:56
@先生,將它變成一個不可見的ascii字符。 – gommb
'r.append(char)'這是錯誤的,這會給char的索引而不是char,你必須使用'r.append(l1 [char])' –