Flask接口签名sign原理与实例代码浅析
284
2022-09-06
# yyds干货盘点 # Python实现对规整的二维列表中每个子列表对应的值求和
大家好,我是Python进阶者。
一、前言
前几天在Python白银交流群有个叫【dcpeng】的粉丝问了一个Python列表求和的问题,如下图所示。
lst = [[1, 2, 3, 4], [1, 5, 1, 2], [2, 3, 4, 5], [5, 3, 1, 3]]s1 = 0s2 = 0s3 = 0s4 = 0for i in lst: s1 += i[0] s2 += i[1] s3 += i[2] s4 += i[3]print(list([s1, s2, s3, s4]))
上面的这个代码可以实现,但是觉得太不智能了,如果每个子列表里边有50个元素的话,再定义50个s变量,似乎不太好,希望可以有个更加简便的方法。
二、实现过程
关于这个题目,大佬们一共给了3种方法,这里整理出来,给大家一起学习。
【瑜亮老师】解法
这里【瑜亮老师】给了一个代码,如下所示:
lst = [[1, 2, 3, 4], [1, 5, 1, 2], [2, 3, 4, 5], [5, 3, 1, 3]][print(sum(i)) for i in zip(*lst)]
【Daler】解法
一开始【猫药师Kelly】大佬给了一个思路,使用np array实现,后来【Daler】直接安排了一份代码,如下所示:
import numpy as nplst = [[1, 2, 3, 4], [1, 5, 1, 2], [2, 3, 4, 5], [5, 3, 1, 3]]list1 = np.sum(lst, axis=0) # 按照纵轴计算list2 = np.sum(lst, axis=1) # 按照横轴计算print(list1)print(list2)
这里使用numpy库进行实现,也非常赞!
【月神】解法
这里【月神】给了一个难顶的解法,使用了内置函数和匿名函数来实现,代码如下所示:
from functools import reducelst = [[1, 2, 3, 4], [1, 5, 1, 2, 6], [2, 3, 4, 5], [5, 3, 1, 3]]print(list(reduce(lambda x, y: map(lambda i, j: i + j, x, y), lst)))
以上就是针对该问题的三个解决方法了,真是太强了!如果你还有其他方法,欢迎尝试,有结果的话,欢迎分享给我噢!
三、总结
大家好,我是Python进阶者。这篇文章主要分享了使用Python实现对规整的二维列表中每个子列表对应的值求和的问题,文中针对该问题给出了具体的解析和代码演示,一共3个方法,顺利帮助粉丝顺利解决了问题。
最后感谢粉丝【dcpeng】提问,感谢【瑜亮老师】、【月神】、【Daler】给出的代码和具体解析,感谢粉丝【猫药师Kelly】等人参与学习交流。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~