【发布时间】:2020-09-11 21:09:55
【问题描述】:
def array_diff(a, b):
result = []
i = 0;
j = 0;
if (a[i] == b[j]):
a = a.remove(a[i]) #append() method in python adds a single item to the existing list
if i<len(a):
i+=1;
return a;
if j<len(b):
i+=1;
return a;
它应该从列表 a 中删除所有值,这些值存在于列表 b 中。如果我应该举个例子:
array_diff([1,2],[1]) == [2]
array_diff([1,2,2,2,3],[2]) == [1,3]
我对 Python 语言非常陌生,因此我将不胜感激。我做错了什么,我该如何改善?
我编辑了:
def array_diff(a, b):
b=set(b)
for v in a:
if v in b:
a.remove(v)
return list(a)
但是,当 a 为 [1,2,2],b 为 [2] 时,预期为 [1]:它返回 [1, 2] 而它应该等于 [1]
【问题讨论】: