python 中[0]*2与0*2的区别说明


Posted in Python onMay 10, 2021

程序用例:

a=[[1,2],[4,5]]
b=[0]*len(a)
d=0*len(a)
print("len(a)=",len(a))
print("b=",b)
print("d=",d)
print(2*[1,2])
print([1,2]*2)

输出如下:

len(a)= 2

b= [0, 0]

d= 0

[1, 2, 1, 2]

[1, 2, 1, 2]

可以看出在矩阵后面程一个数等于将其复制几次。

补充:创建二维数组 以及 python中[0 ]* n与[0 for _ in range(n)]的区别与联系

一、浅拷贝于深拷贝

直接赋值:其实就是对象的引用(别名)。

浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。

深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。

二、区别

[ 0 ] * n 是浅拷贝, 也就是把一个列表重复了 n 次,是 = 号复制(注意不是浅拷贝,= 与浅拷贝的list id是不同的);[[0]*n]*m 这种方式是直接将 [0]*n 复制了m遍

[0 for _ in range(n)] 才是创建,深拷贝

n = 4
dp1 = [0] * n
dp2 = [0 for _ in range(n) ]
print('dp1:',dp1)
print('dp2:',dp2)

这两者的效果是一样的

dp1: [0, 0, 0, 0]

dp2: [0, 0, 0, 0]

二维数组,创建一个3*4的矩阵,元素全为0,修改(0,2)个元素的值为3,则提供三种方法如下:

m,n = 3,4
dp1 = [[0] * n ] * m
dp2 = [[0 for _ in range(n) ] for _ in range(m)]
dp3 = [[0] * n for _ in range(m)]
dp1[0][2] = 3
dp2[0][2] = 3
dp3[0][2] = 3
print('dp1:',dp1)
print('dp2:',dp2)
print('dp2:',dp3)

结果为:

dp1: [[0, 0, 3, 0], [0, 0, 3, 0], [0, 0, 3, 0]]

dp2: [[0, 0, 3, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

dp2: [[0, 0, 3, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

第一种方法不行,每一行的改变都会改变其他行

第二种、第三种方法均可

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。如有错误或未考虑完全的地方,望不吝赐教。

Python 相关文章推荐
pycharm 使用心得(六)进行简单的数据库管理
Jun 06 Python
Python里disconnect UDP套接字的方法
Apr 23 Python
Python实现建立SSH连接的方法
Jun 03 Python
为Python的Tornado框架配置使用Jinja2模板引擎的方法
Jun 30 Python
Python中的二维数组实例(list与numpy.array)
Apr 13 Python
python xlsxwriter创建excel图表的方法
Jun 11 Python
Python Opencv任意形状目标检测并绘制框图
Jul 23 Python
Python格式化输出--%s,%d,%f的代码解析
Apr 29 Python
python requests.get带header
May 05 Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
Jun 02 Python
Django用内置方法实现简单搜索功能的方法
Dec 18 Python
Python基于百度API识别并提取图片中文字
Jun 27 Python
Python超简单容易上手的画图工具库推荐
python爬虫请求库httpx和parsel解析库的使用测评
May 10 #Python
Python 中数组和数字相乘时的注意事项说明
May 10 #Python
python 实现的截屏工具
python实现的人脸识别打卡系统
Python词云的正确实现方法实例
python神经网络编程之手写数字识别
You might like
PHP使用PHPExcel实现批量上传到数据库的方法
2017/06/08 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
PHP的cookie与session原理及用法详解
2019/09/27 PHP
js遍历td tr等html元素
2012/12/13 Javascript
jquery cookie的用法总结
2013/11/18 Javascript
JavaScript中对DOM节点的访问、创建、修改、删除
2015/11/16 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
2015/12/13 Javascript
NodeJS仿WebApi路由示例
2017/02/28 NodeJs
Vue.js常用指令之循环使用v-for指令教程
2017/06/27 Javascript
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
Javascript刷新页面的实例
2017/09/23 Javascript
vue 实现类似淘宝星级评分的示例
2018/03/01 Javascript
react以create-react-app为基础创建项目
2018/03/14 Javascript
Vue.js进阶知识点总结
2018/04/01 Javascript
javascript实现摄像头拍照预览
2019/09/30 Javascript
vue输入框使用模糊搜索功能的实现代码
2020/05/26 Javascript
python实现分析apache和nginx日志文件并输出访客ip列表的方法
2015/04/04 Python
python 简单备份文件脚本v1.0的实例
2017/11/06 Python
对TensorFlow的assign赋值用法详解
2018/07/30 Python
使用Python向DataFrame中指定位置添加一列或多列的方法
2019/01/29 Python
Python整数与Numpy数据溢出问题解决
2019/09/11 Python
python topk()函数求最大和最小值实例
2020/04/02 Python
如何用 Python 处理不平衡数据集
2021/01/04 Python
java关于string最常出现的面试题整理
2021/01/18 Python
解决virtualenv -p python3 venv报错的问题
2021/02/05 Python
详解Html5 监听拦截Android返回键方法
2018/04/18 HTML / CSS
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
Joseph官网:英国小众奢侈品牌
2019/05/17 全球购物
马来西亚奢侈品牌购物商城:Valiram 247
2020/09/29 全球购物
数据库的约束含义
2012/09/09 面试题
中学教师自我鉴定
2014/02/07 职场文书
《匆匆》教学反思
2014/02/22 职场文书
艺术学院毕业生求职信
2014/07/09 职场文书
分居协议书范本
2014/11/03 职场文书
求职推荐信范文
2015/03/27 职场文书
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis