【发布时间】:2021-01-19 02:20:51
【问题描述】:
例如:
listA = ["a", "b", "c", "d"]
listB = [True, False, True, False]
如何提取listA和True中的元素,比如listA(listB),得到["a", "c"]?最好有一行代码来实现。
【问题讨论】:
-
请添加预期输出
-
[a for i,a in enumerate(listA) if listB[i]] -
@PatrickArtner 为什么在
zip存在的情况下使用enumerate? -
[a for a,b in zip(listA,listB) if b]有很多方法可以到达你想要的地方:) @khelwood - 你是对的,这更好 -
实际上,itertools 中有
compress()可以满足您的需求。list(compress(listA, listB))
标签: python