• python二维列表求解所有元素之和


    2020-01-14

    相信很多初学小伙伴都会遇到二维列表求解所有元素之和问题,下面给出两种两种常见的求和方法。

    方法1:

    思想:遍历整个二维列表元素,然后将所有元素加起来

     1 def Sum_matrix(matrix):
     2     sum=0
     3     for i in range(len(matrix)):
     4         for j in range(len(matrix[i])):
     5             sum+=matrix[i][j]
     6     return sum
     7 
     8 
     9 #测试
    10 matrix=[[1, 2, 3], [4, 5, 6, 4], [7, 8, 9]]
    11 Sum_matrix(matrix) #49
    12 
    13 a=[[22,4,5],[3],[5,5,82,4,7]]
    14 Sum_matrix(a) #137

    说明上述方法可以求解常见二维列表所有元素之和,不受列表各行长度影响

    方法2

    思想:采用列表句柄(在一篇博客看到这样称呼)来求解,思想还是将所有元素加起来,但实现方法与方法1稍微有点不同

     1 def Sum_matrix(matrix):
     2     sum=0
     3     for i in matrix:
     4         for j in i:
     5             sum+=j
     6     return sum
     7 
     8 #测试
     9 matrix=[[1, 2, 3], [4, 5, 6, 4], [7, 8, 9]]
    10 Sum_matrix(matrix) #49
    11 
    12 a=[[22,4,5],[3],[5,5,82,4,7]]
    13 Sum_matrix(a) #137

    说明:可以看到,方法2实现方式更简单,更灵活。与方法1相比,在方法2中,遍历时的 i 代表二维列表的一整行,j表示一行中各个元素,而方法1中遍历时的 i 和 j 用来表示元素位置。同样方法2不受列表各行长度影响。

    关于i和j 用来表示各个元素值,可看下面例子

    matrix=[[1, 2, 3], [4, 5, 6, 4], [7, 8, 9]]
    >>> for i in matrix:
        print(i)
        for j in i:
            print(j)
    
    #输出
    [1, 2, 3] #i=0,matrix第一行matrix[0]
    1
    2
    3
    [4, 5, 6, 4]#i=1,matrix第二matrix[1]
    4
    5
    6
    4
    [7, 8, 9] #i=2,matrix第三行matrix[2]
    7
    8
    9

     应该很清晰了吧!

    总结:以上两种方法相信在实际操作中均会采用,方法1采用元素下表形式来访问元素,方法2采用二维列表句柄形式访问,简单灵活。两种方法相对都较容易,希望小伙伴们都能掌握,也欢迎大家一块留言讨论学习

  • 相关阅读:
    C++11 std标准库chrono获取系统时间戳
    求取激光光斑质心
    Windows多网卡UDP广播问题
    IP地址分类
    C++各种时间的含义、区别和相互转换
    MFC中控件显示提示信息tooltip
    IP地址 网关 子网掩码之间的关系
    MFC动态添加菜单选项
    opencv函数学习:rotate()的使用
    opencv函数学习:flip()的使用
  • 原文地址:https://www.cnblogs.com/rounie/p/12194212.html
Copyright © 2020-2023  润新知