【发布时间】:2012-01-22 11:21:06
【问题描述】:
我对 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 个项目的列表。
如果有人能向我解释我的代码目前存在的问题并建议我如何修改代码以使其达到我想要的效果,我将不胜感激。
【问题讨论】:
标签: python