检查列表并相应地编辑第二个列表

时间:2018-04-04 09:47:27

标签: python list numpy

我有3个列表(相同的形状 - 大约800个元素),其值为 1或0 。我想要实现的是一个新列表,其中包含该索引的其他3个列表中 1的数量

进一步解释......

# I have these
list1 = [1, 0, 1]
list2 = [1, 1, 1]
list3 = [0, 0, 1]

# I want this

new_list = [2, 1, 3]

我通过嵌套for循环来实现这一点(即:循环遍历每个列表并相应地编辑new_list)。但是,我想知道是否存在更有效(尤其是内存和资源)方法。

2 个答案:

答案 0 :(得分:4)

这应该对你有用

# I have these
list1 = [1, 0, 1]
list2 = [1, 1, 1]
list3 = [0, 0, 1]

[sum(i) for i in zip(list1, list2, list3)]
  

[2,1,3]

答案 1 :(得分:3)

如果您乐意使用第三方库,numpy提供了矢量化方法:

import numpy as np

list1 = [1, 0, 1]
list2 = [1, 1, 1]
list3 = [0, 0, 1]

res = np.sum([list1, list2, list3], axis=0).tolist()

# [2, 1, 3]