我试图创建一个函数,它需要2个列表并返回只有两个列表有差异的列表。比较两个列表并仅打印差异? (XORing两个列表)
实施例:
a = [1,2,5,7,9]
b = [1,2,4,8,9]
结果应该打印[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])
第一个for循环排序它,第二个去除重复。问题是结果是 [1,2,4,5,7,8,9]
不是[4,5,7,8]
,所以它不会完全删除重复?我可以添加什么来做到这一点。 我不能使用任何特殊的模块,.sort,set或任何东西,只是基本上循环。
嗯,列表解析 – Patashu 2013-05-01 04:33:30
我想我明白它在做什么,但是我会怎样使这成为一个完整的循环,并将该循环添加到原来的功能,或者是否会自行工作... – user2314520 2013-05-01 04:55:56
这是一个单线程,它会执行您正在创建的功能...您通过list1 + list2循环元素x并且有两个if:1.如果list1中的元素使得flag1 = True,2.如果list2中的元素使得flag2 = True;如果(flag1和flag2)!= True且x不在outputlist中,则将其添加到outputlist。 – sashkello 2013-05-01 05:00:42