Skip to main content
 首页 » 编程设计

python之使用索引条件对列表元素求和

2025年05月04日16zhengyun_ustc

我有一个长度为 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