我有一个长度为 L 的列表,其中包含一些随机值:
list1 = [3, 1, 1, 6, 8, 3, 7, 4, 8, 4]
和另一个相同长度的列表,带有 bool 值
list2 = [0, 0, 0, 1, 1, 1, 0, 0, 0, 0]
我想对 list1 的值求和,其中对应的元素是 list2 是 1。 (在本例中为 6+8+3)
有没有一种简单的方法可以用 Python 实现?
请您参考如下方法:
您可以使用 itertools.compress与 sum :
>>> import itertools
>>> list1 = [3, 1, 1, 6, 8, 3, 7, 4, 8, 4]
>>> list2 = [0, 0, 0, 1, 1, 1, 0, 0, 0, 0]
>>> list(itertools.compress(list1, list2))
[6, 8, 3]
>>> sum(itertools.compress(list1, list2))
17
