Python列表差异

Pat*_*ham 5 python list

我试图找到列表A中的所有元素而不是列表B.

我认为某些事情newList = list(set(a) & !set(b))或者newList = list(set(a) & (not set(b)))会起作用,但事实并非如此.

如果有更好的方法来实现我想要做的除此之外的其他事情?

newList = []
for item in a:
    if item not in b:
        newList.append(item)
Run Code Online (Sandbox Code Playgroud)

同样重要的是,它需要在Python 2.6中完成

phi*_*hag 15

你正在寻找设定差异:

newList = list(set(a).difference(b))
Run Code Online (Sandbox Code Playgroud)

或者,使用减号运算符:

list(set(a) - set(b))
Run Code Online (Sandbox Code Playgroud)


Pra*_*ota 10

你试过了吗

list(set(a) - set(b))
Run Code Online (Sandbox Code Playgroud)

以下是所有Python集合操作的列表.

但这不必要地创造了一个新的集合b.正如@phihag所提到的,difference方法会阻止这种情况.