首页 > 解决方案 > 从python中的另一个列表中获取列表的对应元素时使用map函数获取错误列表

问题描述

我有两个清单:

a = [1,2,3,4]
b = [True,False,True,False]

我想得到aTruein对应的元素b,不要使用for循环。我用map函数来解决它,但它出错了:

def f(x,y):
    if x:
        return y
s = list(map(f,b,a))

s[1, None, 3, None],而且我不想要None,我该怎么办?

标签: pythonlist

解决方案


使用compress

from itertools import compress
a = [1,2,3,4]
b = [True,False,True,False]
s = list(compress(a, b))

输出:

[1, 3]

推荐阅读