我正在进行列表比较,我觉得我已经用完了可能的方法。情况就是这样: 我有两个列表,例如:
[00, 11, 22, 33, 44, 55]
和
[22, 55]
我需要的是从这两个中构建一个比较列表:
[0, 0, 1, 0, 0, 1]
如果元素在列表中,则放置1;如果没有这样的元素,则放置0。应订购比较清单。我不能在这里找到正确方法的线索,所以我要求帮助。
答案 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]