两个列表如何相互匹配?

a=['good' , 'study' , 'day' , 'up']
b=[0 , 1 , 1 , 0]
c=['study' , 'day']

要求:当 b[i] == 1时,提取出 a[i] ,并组成新列表c
不使用循环遍历的前提下,有没有一个函数能直接做到?

直接列表解析


c = [a[i] for i in range(len(a)) if b[i] == 1]

np.array(a)[np.array(b) == 1].tolist()

用lambda表达式。

a=['good' , 'study' , 'day' , 'up']
b=[0 , 1 , 1 , 0]
c=['study' , 'day']

count = -1;
def is_odd(n):
    global count
    count+=1;
    x = a[count] if n==1 else ''
    return x
L = list(map(is_odd, b))
def is_null(n):
    return n!=''
L = list(filter(is_null, L))
print(L)


可以修改你的b列表吗?

img

img
我的这个会吧b修改了,有用的话点一下采纳