Python代码阅读(第12篇):初始化二维数组
Python 代码阅读合集介绍:为什么不推荐Python初学者直接看项目源码
本篇阅读的代码实现了二维数组的初始化功能,根据给定的宽高初始化二维数组。
本篇阅读的代码片段来自于30-seconds-of-python。
initialize_2d_list
def initialize_2d_list(w,h, val = None):
return [[val for x in range(w)] for y in range(h)]
# EXAMPLES
initialize_2d_list(2, 2, 0) # [[0,0], [0,0]]
initialize_2d_list接收二维数组的宽、高和初始值,返回一个二维数组。
函数通过列表推导式和range()函数生成h行长度为w的列表。列表中的元素的初始值由参数val指定。
[[val for x in range(w)] for y in range(h)]该列表推导式的第一个部分是生成一个列表,该列表长度为w,所有的值为val。第二部分是将第一部分生成的列表作为元素生成一个长度为h的列表。
range
range类型表示不可变的数字序列,通常用于在for循环中循环指定的次数。它有两种形式:class range(stop)和class range(start, stop[, step])。如果省略 step 参数,其默认值为1。如果省略start参数,其默认值为0,如果step为零则会引发ValueError。
如果step为正值,确定range r内容的公式为r[i] = start + step*i 其中 i >= 0 且 r[i] < stop。
如果step为负值,确定range内容的公式仍然为r[i] = start + step*i,但限制条件改为 i >= 0 且 r[i] > stop。
如果r[0]不符合值的限制条件,则该range对象为空。range对象确实支持负索引,但是会将其解读为从正索引所确定的序列的末尾开始索引。
Python代码阅读(第12篇):初始化二维数组的更多相关文章
- Go初始化二维数组
初始化二维数组 var a = make([][]int, n) for i := 0; i < n; i++ { a[i] = make([]int, n) }
- python 中初始化二维数组的方法
最好的方法是: 初始化4*3的二维数组 a = [[0 for col in xrange(3)] for row in xrange(4)] 而不可以用: a = [[0]*3]*4 [0]*3是生 ...
- C++使用fill初始化二维数组
类似如下用法: fill(dis[0], dis[0]+maxn*maxn, INF); 因为 dis[0]才是dis的首元素 dis[0][0] 的地址.
- 避坑!js正确地使用fill()初始化二维数组
先介绍一下坑 fill()方法都知道,填充数组 比如: let a = new Array(5).fill(0); console.log(a); // 输出结果为[0, 0, 0, 0, 0] 当我 ...
- Python代码阅读(第8篇):列表元素逻辑判断
Python 代码阅读合集介绍:为什么不推荐Python初学者直接看项目源码 本篇阅读的三份代码的功能分别是判断列表中的元素是否都符合给定的条件:判断列表中是否存在符合给定的条件的元素:以及判断列表中 ...
- Python代码阅读(第11篇):展开嵌套列表
Python 代码阅读合集介绍:为什么不推荐Python初学者直接看项目源码 本篇阅读的代码实现了展开嵌套列表的功能,将一个嵌套的list展开成一个一维list(不改变原有列表的顺序). 本篇阅读的代 ...
- Python代码阅读(第21篇):将变量名称转换为蛇式命名风格
Python 代码阅读合集介绍:为什么不推荐Python初学者直接看项目源码 本篇阅读的代码实现将变量名称转换为蛇式命名风格(snake case)的功能. 本篇阅读的代码片段来自于30-second ...
- 初始化二维列表时使用[ [0]* N ] * K会出现的问题
声明二维列表使用[ [0]* N ] * K会出现的问题 初始化二维列表时使用[ [0]* N ] * K创建,外层列表的每一个元素地址相同: 创造了一个二维列表: 修改其中的一个元素a[1][1], ...
- python笔记8-列表list操作、多维数组
#!/usr/bin/python #python里面有个这个话,代表在linux下运行的时候#去哪个目录下找python的解释器,在windows上运行不用写# coding:utf-8# __*_ ...
随机推荐
- 【JavasScript】折腾一个基础到不能再基础的顺滑抽奖页面
前言 事情是这样的,作为一个意志力极低的人,最近一直在找寻提高意志力的方法. 然后决定试一试所谓的"建立奖励机制",也就是说,完成一项意志力挑战后给自己一些奖励(具体操作方法不在这 ...
- QT开发实战一:图片显示
测试平台 宿主机平台:Ubuntu 12.04.4 LTS 目标机:Easy-ARM IMX283 目标机内核:Linux 2.6.35.3 QT版本:Qt-4.7.3 Tslib版本:tslib-1 ...
- Python常见问题 - 写入数据到 excel 报 ValueError: invalid literal for int() with base 10 错误
背景 在上写入数据到excel中,报了以下错误 出现原因 对于写入excel场景下出现该错误的话,很大概率是写入数据的单元格原本的数据格式有问题 解决方法 清理掉单元格的旧数据,然后再写入就可以了
- Python - pipupgrade 库
使用 pipupgrade 可以批量更新本地包.系统包 安装库 pip install pipupgrade 批量更新 pipupgrade -V -l -y -V.--verbose 显示详细输出 ...
- MongoDB 常见问题 - 解决 brew services list 查看 MongoDB 服务 status 显示 error 的问题
问题背景 将 MongoDB 作为服务运行 brew services start mongodb-community@4.4 也显示运行成功了,但是查看服务列表的时候,发现 MongoDB 服务的还 ...
- Gitlab(2)- centos7.x 下安装社区版 Gitlab 以及它的配置管理
前置准备:虚拟机安装以及配置相关 包含安装 centos7.8 虚拟机.设置静态 ip 等 https://www.cnblogs.com/poloyy/category/1703784.html 注 ...
- jvm学习笔记:虚拟机栈
虚拟机栈 Each Java Virtual Machine thread has a private Java Virtual Machine stack, created at the same ...
- python3.x内置函数
函数 返回值类型 函数详情 abs(x) int|float 求绝对值,若是复数则返回复数的模 all(iterable) bool 若所有元素为真则返回True(非0,非空,非None) any(i ...
- Spring Boot 2.x 之 H2 数据库
1. Spring Boot下H2数据库的常用配置项 # 指定数据库的类型 spring.datasource.platform=h2 # 数据库连接地址(文件模式) ## AUTO_SERVER=T ...
- java.net.NoRouteToHostException: Cannot assign requested address
今天压力测试时, 刚开始出现了很多异常, 都是 java.net.NoRouteToHostException: Cannot assign requested address. 经网上查资料, 是 ...