在列表组件列表中明智地添加或减去元素
Adding or subtracting elements within list of list component wise
如何在列表组件中明智地添加列表元素?
p=[[1,2,3],[1,0,-1]]
我尝试了以下方法:
list(map(sum,zip(p[0],p[1])))
会得到我 [2,2,2]
这正是我需要的。但是如何将它扩展为可变数量的列表呢?例如,p=[[1,2,3],[1,0,-1],[1,1,1]]
应该产生 [3,3,3]
.
我想到的解决方案如下:
import pandas as pd
p=[[1,2,3],[1,0,-1],[1,1,1]]
list(pd.DataFrame(p).sum())
有没有更“Pythonic”的方法来解决这个问题?
对解包列表使用 *
:
a = list(map(sum,zip(*p)))
print (a)
[3, 3, 3]
在 numpy 中的解决方案类似于 pandas:
a = np.array(p).sum(axis=0).tolist()
print(a)
[3, 3, 3]
您可以使用 * 来解压列表并使用 sum 来总结。
如果您对地图功能不满意,可以这样做:
p = [[1, 2, 3], [4, 5, 6], [-5,-7,-9]]
sum_list = [sum(elem) for elem in zip(*p)]
print(sum_list)
如何在列表组件中明智地添加列表元素?
p=[[1,2,3],[1,0,-1]]
我尝试了以下方法:
list(map(sum,zip(p[0],p[1])))
会得到我 [2,2,2]
这正是我需要的。但是如何将它扩展为可变数量的列表呢?例如,p=[[1,2,3],[1,0,-1],[1,1,1]]
应该产生 [3,3,3]
.
我想到的解决方案如下:
import pandas as pd
p=[[1,2,3],[1,0,-1],[1,1,1]]
list(pd.DataFrame(p).sum())
有没有更“Pythonic”的方法来解决这个问题?
对解包列表使用 *
:
a = list(map(sum,zip(*p)))
print (a)
[3, 3, 3]
在 numpy 中的解决方案类似于 pandas:
a = np.array(p).sum(axis=0).tolist()
print(a)
[3, 3, 3]
您可以使用 * 来解压列表并使用 sum 来总结。 如果您对地图功能不满意,可以这样做:
p = [[1, 2, 3], [4, 5, 6], [-5,-7,-9]]
sum_list = [sum(elem) for elem in zip(*p)]
print(sum_list)