gpt4 book ai didi

python - 如何使用来自另一个列表的 bool 值来屏蔽列表

转载 作者:太空宇宙 更新时间:2023-11-04 07:05:07 27 4
gpt4 key购买 nike

我有一个这样的列表:

x = [True, False, True, False]

和这样的列表:

y = [a, b, c, d]

我想在 y 上屏蔽 x 以获得此输出:

output = [a, c]

我知道如何使用 while/for 循环来做到这一点,但理想情况下我正在寻找使用列表理解的优雅的单行代码。

最佳答案

您可以使用zip 和列表理解来根据x 中相应的真值对y 执行过滤操作:

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']

关于python - 如何使用来自另一个列表的 bool 值来屏蔽列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53527850/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com