我有涉及彼此两个功能 - 第一个将删除相同,并且在同一位置的字符,并返回一个不匹配的:比较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])' –