根据条件返回两个列表之间的二进制列表元素

Joe*_*Joe 2 python dictionary list

我有以下两个列表:

A = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
B = ['b', 'd', 'f', 'g']
Run Code Online (Sandbox Code Playgroud)

我想检查其中的元素B是否在Athen 0else 中1。预期的输出应该是这样的:

{'C': [0, 1, 0, 1, 0, 1, 1]}
Run Code Online (Sandbox Code Playgroud)

我尝试了以下但没有得到我所期望的。

{'C': [int(i == j) for j in A] for i in B}
Run Code Online (Sandbox Code Playgroud)

wav*_*per 7

正如@Boris 提到的,set(B)如果列表很长,使用会快得多。

{'C': [int(value in set(B)) for value in A] }
Run Code Online (Sandbox Code Playgroud)

输出 :

{'C': [0, 1, 0, 1, 0, 1, 1]}
Run Code Online (Sandbox Code Playgroud)