我有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)。但是,我想知道是否存在更有效(尤其是内存和资源)方法。
答案 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]