我有两个相同大小的列表,一个是字符串列表,另一个是布尔值列表(True
,False
),我想只返回一个字符串列表索引是真的。
b_list = [True, False, True]
s_list = ['abc', 'sfsfsfsf', 'def']
想要
s_list = ['abc','def']
答案 0 :(得分:4)
compress(数据,选择器):返回与选择器元素对应的数据元素
因此s_list
是数据而b_list
是选择器:
In [8]: import itertools
In [9]: list(itertools.compress(s_list, b_list))
Out[9]: ['abc', 'def']
答案 1 :(得分:2)
没有itertools
使用列表理解:
[y for (x,y) in zip(b_list, s_list) if x]