Rya*_*ker 3 python lambda list
我有两个清单:
list_1 = [0, 1, 0, 0, 0, 0, 1]
list_2 = [34, 54, 23, 54, 656 34, 100]
Run Code Online (Sandbox Code Playgroud)
我想只将list_2索引所在list_2的值与实际相同索引的值1 相加list_1.
这里的例子是 54 + 100 = 154
我怎么能用Pythonic方式在Python中做到这一点?
只要使用compress从itertools与喂它sum; 它是为此目的而建造的:
from itertools import compress 
r = sum(compress(list_2, list_1))
Run Code Online (Sandbox Code Playgroud)
        压缩列表,然后仅对第一个元素所在的值求和1:
s = sum(b for a, b in zip(list_1, list_2) if a)
Run Code Online (Sandbox Code Playgroud)
另一种拉链方法是列表之间的元素乘法(从而消除其并行的元素0):
s = sum(a * b for a, b in zip(list_1, list_2))
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           161 次  |  
        
|   最近记录:  |