我有一个这样的清单:
x = [True, False, True, False]
和这样的列表:
y = [a, b, c, d]
我想掩盖x
在y
得到这样的输出:
output = [a, c]
我知道如何使用while
/for
循环来执行此操作,但是理想情况下,我希望使用列表理解来寻找优雅的一行代码。
您可以使用zip
和列表推导来y
基于以下内容中的对应真值执行过滤操作x
:
x = [True, False, True, False]
y = ["a", "b", "c", "d"]
print([b for a, b in zip(x, y) if a])
输出:
['a', 'c']
itertools.compress
也这样做:
>>> from itertools import compress
>>> x = [True, False, True, False]
>>> y = ["a", "b", "c", "d"]
>>> list(compress(y, x))
['a', 'c']
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句