我在学习Python,对列表的使用有些困惑。我有两个列表,想要比较它们并返回相同和不同元素的二进制格式。
List1
长度固定,而 List2
的长度各不相同(但总是比 List1
短)。
例如:
List1 = ['dog', 'cat', 'pig', 'donkey']
List2 = ['dog', 'cat', 'donkey']
期望输出:
List3 = [1, 1, 0, 1]
我目前所拥有的代码是:
def match_nonmatch(List1, List2):
List3 = []
for i in range(len(List1)):
for j in range(len(List2)):
if List1[i] == List2[j]:
List3.append(1)
else:
List3.append(0)
return List3
我可以比较列表并返回匹配项,但是当我包含上面显示的else语句来返回不匹配项时,结果列表比应该有的要长得多。例如,当我使用一个包含60个项目的列表进行比较时,我得到的列表包含3600个项目而不是60个。
如果有人能解释一下我目前代码的问题,并建议我如何修改代码以实现我的目标,我将不胜感激。