我正在尝试创建一个函数,该函数接收2个列表并返回仅具有两个列表的差异的列表.
例:
a = [1,2,5,7,9]
b = [1,2,4,8,9]
Run Code Online (Sandbox Code Playgroud)
结果应该打印出来 [4,5,7,8]
到目前为止的功能:
def xor(list1, list2):
list3=list1+list2
for i in range(0, len(list3)):
x=list3[i]
y=i
while y>0 and x<list3[y-1]:
list3[y]=list3[y-1]
y=y-1
list3[y]=x
last=list3[-1]
for i in range(len(list3) -2, -1, -1):
if last==list3[i]:
del list3[i]
else:
last=list3[i]
return list3
print xor([1,2,5,7,8],[1,2,4,8,9])
Run Code Online (Sandbox Code Playgroud)
第一个for循环对它进行排序,第二个删除重复项.问题是结果
[1,2,4,5,7,8,9]不是[4,5,7,8],所以它没有完全删除重复项?我可以添加什么来做到这一点.我不能使用任何特殊模块,.sort,set或任何东西,基本上只是循环.