我試圖創建一個函數,它需要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