我在python中有两个数组。我想删除第一个数组中存在的所有元素。这里是一个数组的例子:
array1 =[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
array2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 2, 4, 6, 8, 10, 3, 6, 9, 4, 8, 5, 10, 6, 7, 8, 9, 10, 11]
结果将是:
array2 = []
这是我所做的:
for x in array1:
for y in array2:
if x==y:
array2.remove(x)
print (array2)
但是我看到的是[10]。为什么?以及如何解决这个问题?
最佳答案
我猜这个问题与您如何循环和删除列表中的项目有关,使程序跳过了第三个10
。
您可以使用快速列表理解来解决此问题:
array3 = [i for i in array2 if i not in array1]
这基本上是一种更简单的键入方式:
array3 = []
for i in array2:
if i not in array1:
array3.append(i)
此外,您可能不想使用集合。例如:
array1 = [1, 2, 3]
array2 = [1, 2, 3, 3, 4, 4, 5, 6]
array3 = list(set(array2) - set(array1))
array3
仅包含[4, 5, 6]
,而不包含[4, 4, 5, 6]
,因为set
不能包含重复项。关于python - 删除另一个数组中的元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58465083/