我们知道如果以邻接矩阵的形式(元素为0/1、true/false,只表示关联与否)表示图结构的话,邻接矩阵的行和表示每一个顶点的出度,邻接矩阵的列和表示每一个顶点的入度。

如果不使用高级的 python 第三方的库(如 numpy),而仅使用 list,使用 list of lists 来表示邻接矩阵,该如何计算行和、列和(也即出度、入度)呢?

from random import randrange
n = 10
N = [[randrange(2) for _ in range(n)] for _ in range(n)]# 随机 0-1 值构成的随机图
out_degrees = [0]*n
in_degrees = [0]*10for i in range(n):out_degrees[i] = sum(N[i])for j in range(n):for i in range(n):in_degrees[j] += N[i][j]# 注意入度的循环顺序,# 固定列,遍历行                           

补充

充分发挥 Python 的语法特性,也即 list comprehension,这里提供一个更为简便的版本:

out_degrees = [sum(N[i]) for i in range(n)]
in_degrees = [sum([N[i][j] for i in range(n)]) for j in range(n)]

Tricks(七)——list of lists 行和、列和的计算相关推荐

  1. Algs4-1.1.13编写一段代码,打印出一个M行N列的二维数组的转置(交换行和列)

    1.1.13编写一段代码,打印出一个M行N列的二维数组的转置(交换行和列). public  class Test {     public static void main(String[] arg ...

  2. pandas使用transpose函数对dataframe进行转置、将dataframe的行和列进行互换(flip the rows and columns in dataframe)

    pandas使用transpose函数对dataframe进行转置.将dataframe的行和列进行互换(flip the rows and columns in dataframe) 目录

  3. pandas drop 删除行和列的方法

    pandas drop 删除行和列的方法 文章目录 pandas drop 删除行和列的方法 删除行 按行索引删除 删除单行 删除多行 删除列 按列索引删除(列本来是没有索引的,用df.columns ...

  4. pandas中如何选取某几列_pandas 选取行和列数据的方法

    本文介绍在 pandas 中如何读取数据行列的方法.数据由行和列组成,在数据库中,一般行被称作记录 (record),列被称作字段 (field).回顾一下我们对记录和字段的获取方式:一般情况下,字段 ...

  5. c语言:将一个二维数组行和列的元素互换,存到另一个二维数组中。

    将一个二维数组行和列的元素互换,存到另一个二维数组中. 解:程序: #include<stdio.h> int main() { int i, j, a[2][3] = { {1,2,3} ...

  6. 动态隐藏ALV的行和列

    本例和行列例程转换不同,内表结构是固定的,仅仅是通过ALV的fieldcat和Filter来隐藏/显示ALV的行和列 列: FORM changefield .   LOOP AT gt_fieldc ...

  7. numpy 若干行和列_Numpy的轴,pandas的行和列

    使用幕布做了一系列详细笔记请点击: 高维ndarray的轴轴编号和索引傻傻分不清楚 很多函数需要传入轴编号,非常容易和索引弄混,以3维数组为例,轴有3条,编号分别为 0,1,2 我们制造一个3×3×3 ...

  8. Pandas打印所有行和列(显示所有的行和列)

    Pandas打印所有行和列,显示所有的行和列 # 显示所有列 pd.set_option('display.max_columns', None) # # 显示所有行 pd.set_option('d ...

  9. 检索数据_1_从表中查询所有行和列

    从表中查询所有行和列 需求描述 需求:检索表里所有行的数据. 解决方法:通过SQL的关键字*来匹配到所有行和列,结合SELECT FROM 即可满足需求. 注: 数据库数据集SQL脚本详见如下链接地址 ...

  10. Java黑皮书课后题第8章:*8.23(游戏:找到翻转的单元格)假定给定一个填满0和1的6*6矩阵,所有的行和列都有偶数个1。让用户翻转一个单元,编写一个程序找到哪个单元格被翻转了

    *8.23(游戏:找到翻转的单元格)假定给定一个填满0和1的6*6矩阵,所有的行和列都有偶数个1.让用户翻转一个单元,编写一个程序找到哪个单元格被翻转了 题目 题目描述与运行示例 破题 代码 题目 题 ...

最新文章

  1. linux命令匹配path顺序,PATH 中的路径先后顺序的问题
  2. JS 回车提交,兼容IE、火狐、Opera、Chrome、Safari……
  3. linux打开ftp功能的方法
  4. CMarkup类在VC中的使用
  5. 关于Android软件更新
  6. Spring 的持久化实例(JDBC, JdbcTemplate、HibernateDaoSupport、JdbcDaoSupport、SqlSessionDaoSupport等)...
  7. 批处理for命令各开关的含义
  8. 基本 Python 词汇
  9. php将数组值用 分开,PHP将数组中的多个值替换为另一个数组
  10. MySQL用户管理和访问权限
  11. python面试代码题_常见python面试题-手写代码系列
  12. java float_关于java中float型的问题
  13. 转:Windows下WSH/JS实现SVN服务器钩子脚本阻止提交空日志信息和垃圾文件
  14. SQL server 2008 R2 使用教程
  15. python selenium ActionChains类与鼠标的模拟事件
  16. 理论篇3:深度学习之----Momentum优化器(2)
  17. 哇塞!集齐7张卡片,真的可以召唤神龙耶!
  18. 每周一品 · 永磁电机中的磁性材料
  19. 国家进口的爱乐维与德国药店的爱乐维的区别
  20. 达梦数据库中各种表的管理

热门文章

  1. hdfs客户端的学习理解
  2. linux 加速播放软件,VirtualBox 6.1首次推出Linux 5.4支持,加速的视频播放及更多功能...
  3. 各种存储分配算法java代码实现_Java实现操作系统中四种动态内存分配算法:BF+NF+WF+FF...
  4. java 方法引用_JAVA 8 方法引用 - Method References
  5. linux多线程求和_(TCP IP网络编程)实验七 多线程编程
  6. python中定义的类的方法调用老出现missing 1 postional argument 或者self的解决办法
  7. c语言计算1+2+3+4+......n
  8. LeetCode 104.二叉树的最大深度(递归)
  9. 安装Caffe报错:/usr/local/cuda-10.1/targets/x86_64-linux/lib/libcudnn.so.7 is not a symbolic link
  10. PHP实现动态获取函数参数的方法