从两个列表创建比较列表

时间:2018-05-28 15:10:12

标签: python python-3.x

我正在进行列表比较,我觉得我已经用完了可能的方法。情况就是这样: 我有两个列表,例如:

[00, 11, 22, 33, 44, 55]

[22, 55]

我需要的是从这两个中构建一个比较列表:

[0, 0, 1, 0, 0, 1]

如果元素在列表中,则放置1;如果没有这样的元素,则放置0。应订购比较清单。我不能在这里找到正确方法的线索,所以我要求帮助。

3 个答案:

答案 0 :(得分:5)

使用list comprehension

<强>演示:

l1 = [00, 11, 22, 33, 44, 55]
l2 = [22, 55]
print([1 if i in l2 else 0 for i in l1])

<强>输出:

[0, 0, 1, 0, 0, 1]

答案 1 :(得分:3)

另一个更紧凑的列表理解:

l1 = [00, 11, 22, 33, 44, 55]
l2 = [22, 55]

res = [int(i in l2) for i in l1]

也会返回所需的内容:

[0, 0, 1, 0, 0, 1]
  

注意:

     

int(True) == 1 int(False) == 0

答案 2 :(得分:-1)

您可以使用map

d = [00, 11, 22, 33, 44, 55]
s = [22, 55] 
new_d = list(map(lambda x:int(x in s), d))

输出:

[0, 0, 1, 0, 0, 1]