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 相关文章推荐
Python 第一步 hello world
Sep 25 Python
python字典多条件排序方法实例
Jun 30 Python
对Python中range()函数和list的比较
Apr 19 Python
python中csv文件的若干读写方法小结
Jul 04 Python
python使用Turtle库绘制动态钟表
Nov 19 Python
Python实现简单石头剪刀布游戏
Jan 20 Python
python编写简单端口扫描器
Sep 04 Python
django使用xadmin的全局配置详解
Nov 15 Python
pytorch 归一化与反归一化实例
Dec 31 Python
在pytorch中对非叶节点的变量计算梯度实例
Jan 10 Python
python 追踪except信息方式
Apr 25 Python
详解pandas.DataFrame.plot() 画图函数
Jun 14 Python
Python超简单容易上手的画图工具库推荐
python爬虫请求库httpx和parsel解析库的使用测评
May 10 #Python
Python 中数组和数字相乘时的注意事项说明
May 10 #Python
python 实现的截屏工具
python实现的人脸识别打卡系统
Python词云的正确实现方法实例
python神经网络编程之手写数字识别
You might like
php curl 伪造IP来源的实例代码
2012/11/01 PHP
PHP实现的构造sql语句类实例
2016/02/03 PHP
ThinkPHP中Widget扩展的两种写法及调用方法详解
2017/05/04 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
2017/05/05 PHP
PHP执行系统命令函数实例讲解
2021/03/03 PHP
一个js实现的所谓的滑动门
2007/05/23 Javascript
jquery实现表格奇数偶数行不同样式(有图为证及实现代码)
2013/01/23 Javascript
原生js和jquery中有关透明度设置的相关问题
2014/01/08 Javascript
jQuery实现流动虚线框的方法
2015/01/29 Javascript
Bootstrap模仿起筷首页效果
2016/05/09 Javascript
React.js入门实例教程之创建hello world 的5种方式
2016/05/11 Javascript
一个简单不报错的summernote 图片上传案例
2016/07/11 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
Bootstrap在线电子商务网站实战项目5
2016/10/14 Javascript
javascript 中Cookie读、写与删除操作
2017/03/29 Javascript
EasyUI创建人员树的实例代码
2017/09/15 Javascript
vue-cli项目代理proxyTable配置exclude的方法
2018/09/20 Javascript
js实现黑白div块画空心的图形
2018/12/13 Javascript
Vue 事件处理操作实例详解
2019/03/05 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
2019/05/28 Javascript
通过扫小程序码实现网站登陆功能
2019/08/22 Javascript
tensorflow实现简单的卷积神经网络
2018/05/24 Python
Tensorflow中的placeholder和feed_dict的使用
2018/07/09 Python
python实现对指定字符串补足固定长度倍数截断输出的方法
2018/11/15 Python
python 实现分页显示从es中获取的数据方法
2018/12/26 Python
解决使用PyCharm时无法启动控制台的问题
2019/01/19 Python
pycharm new project变成灰色的解决方法
2019/06/27 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
2019/08/12 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
2020/05/28 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
2020/06/15 Python
香港草莓网:Strawberrynet香港
2019/05/10 全球购物
网络教育自我鉴定
2013/11/01 职场文书
2014中考励志标语
2014/06/05 职场文书
班组长安全工作职责
2014/07/15 职场文书
教师四风问题整改措施
2014/09/25 职场文书
机关作风整顿个人整改措施思想汇报
2014/09/29 职场文书