python实现对矩阵按照行、列求和,不使用numpy、pandas模块

来源:互联网 发布:淘宝上怎么删除评价 编辑:程序博客网 时间:2024/06/08 04:58

    因为遇上一个问题需要对矩阵按照行、列求和,这里使用的PC上又无法安装numpy和pandas就只好自己动手写一个简化版的小函数了,其实很简单,就直接上代码了,下面是具体的实现:


#!usr/bin/env python#encoding:utf-8'''__Author__:沂水寒城功能:矩阵按照行列求和矩阵内容如下:1,1,0,1,1,0,1,1,1,0,1,1,11,1,1,1,1,0,0,1,0,0,1,1,11,1,0,1,1,0,1,1,1,0,1,1,01,1,0,1,1,0,1,1,1,0,1,1,01,1,0,1,1,0,1,1,1,0,1,1,01,1,0,1,1,0,1,1,1,0,1,1,01,1,0,1,1,0,1,1,1,0,1,1,11,1,0,1,1,0,1,1,1,0,1,1,01,1,0,1,1,0,1,1,1,0,1,1,11,1,0,1,1,1,1,1,1,1,1,1,0'''def sum_rows(matrix):    '''    按行求和    '''    sum_row_list1=[]    for i in range(len(matrix)):        count=0        for j in range(len(matrix[i])):            count+=matrix[i][j]        sum_row_list1.append(count)    sum_row_list2=map(sum,matrix)    print '方法一结果为:', sum_row_list1    print '方法二结果为:', sum_row_list2def sum_cols(matrix):    '''    按列求和    '''    sum_col_list1=[]    for i in range(len(matrix[0])):        count=0        for j in range(len(matrix)):            count+=matrix[j][i]        sum_col_list1.append(count)    sum_col_list2=map(sum,zip(*matrix))    print '方法一结果为:', sum_col_list1    print '方法二结果为:', sum_col_list2if __name__ == '__main__':    matrix=[[1,1,0,1,1,0,1,1,1,0,1,1,1],            [1,1,1,1,1,0,0,1,0,0,1,1,1],            [1,1,0,1,1,0,1,1,1,0,1,1,0],            [1,1,0,1,1,0,1,1,1,0,1,1,0],            [1,1,0,1,1,0,1,1,1,0,1,1,0],            [1,1,0,1,1,0,1,1,1,0,1,1,0],            [1,1,0,1,1,0,1,1,1,0,1,1,1],            [1,1,0,1,1,0,1,1,1,0,1,1,0],            [1,1,0,1,1,0,1,1,1,0,1,1,1],            [1,1,0,1,1,1,1,1,1,1,1,1,0]]    print '*****************************按行求和********************************'    sum_rows(matrix)    print '*****************************按列求和********************************'    sum_cols(matrix)


结果如下:


*****************************按行求和********************************方法一结果为: [10, 9, 9, 9, 9, 9, 10, 9, 10, 11]方法二结果为: [10, 9, 9, 9, 9, 9, 10, 9, 10, 11]*****************************按列求和********************************方法一结果为: [10, 10, 1, 10, 10, 1, 9, 10, 9, 1, 10, 10, 4]方法二结果为: [10, 10, 1, 10, 10, 1, 9, 10, 9, 1, 10, 10, 4][Finished in 0.3s]


做完了感觉听有意思的

阅读全文
1 0
原创粉丝点击