当前位置: 首页 > news >正文

python学习之路(五)

一,嵌套列表的遍历

上图是对列表遍历的代码,for i in matrix :是对列表中嵌套的数组进行遍历。for each in i是对数组的遍历。由此便可以对整个列表进行遍历。我们来看最后两行代码,print (each , end = "  "),这串代码是指输出一个字符,然后输出一个空格。默认情况下,print是输出之后直接换行的,相当于print ( each , end = "/n"),这里让end等于空格,是其不会换行,然后在后边用print()进行换行,从而达到输出一个数组换一行的效果。

如果需要单独访问,其中的某个元素,方法和C语言中访问二维数组的方法是一样的。

那么,我们再来看看如何生成一个二位数组

我们可以先生成一个数组,然后通过对for和range循环使用,将这个数组作为元素,生成二维数组。那么,就会有一个问题,我们既然可以通过[0]*3来生成一个元素全部为0的数组,那我们是不是也可以用同样的方法生成一个二维数组,实际操作一下发现确实是可以的,但是实际上是不行的,这是一个不易被察觉的错误,为了说明这错误,我们引入一下is运算符。

在 Python 中,is 是一个身份运算符(identity operator),它比较的是两个对象在内存中的地址是否相同。

看上面这串代码我们可以发现,两个看上去一样的东西,通过is运算符进行判断时,他的结果是不一样的,这说明不同的东西在python中的存储方式是不同的。字符串是不变的,所以python只会为其开辟一个空间,而列表是会变化的,python不清楚用户什么时候会对列表的元素进行增删改查的操作,所以python会给x和y分配不同的空间,所以他们的地址是不同的。

当我们使用这一方法,来判断上面我们说的那个错误

我们发现第一行的第二个元素和第二行的第二个元素的地址是一样的,第二行和第三行的地址是一样的,也就是说python在存储时,将这三个东西存在了同一个地方。

二,浅拷贝与深拷贝

上述这两种属于浅拷贝,可以通过copy和切片来完成。拷贝后对其中一个进行操作并不会对另一个产生影响,但是这毕竟是浅拷贝,面对二维时就会产生问题。

我们对其中一个进行操作时,会对另一个产生影响。为了解决这一问题,我们会用到深拷贝。

深拷贝我们用到了deepcopy这个玩意,使用这个东西时,我们需要把 Python 标准库中的 copy 模块引入当前文件,然后就可以使用深拷贝了。由于深拷贝(deep copy)是一次性递归地复制一个对象及其内部所有层级的嵌套对象,从而得到一个完全独立、与原对象互不干扰的新对象。所以,对他们进行操作时,他们相互之间是不会产生影响的。

去拍个短片,下一篇博客记录一下列表推导式,下篇见!!!!

http://www.dtcms.com/a/504048.html

相关文章:

  • 申请一个网站需要多少钱广州 建设 招聘信息网站
  • wordpress做网站优点网站平台建设属于固定资产吗
  • 忽略Lombok构建警告
  • K8s 平滑升级
  • 哪个网站可以查到个人名下公司虾皮跨境电商注册多少钱
  • [C++面向对象语言第三大特性] :多态
  • 网站建设流程要多少钱新开传奇网站999
  • 优化网站推广网站广东网站建设找哪家
  • 均值回归(配对交易)策略
  • 【每日英语(1019)】相关文章:政要新闻,健身,法案,漫画
  • 网站建设初步课程介绍济南国画网站济南网站建设公司
  • 【linux学习篇】多线程之间资源共享---共享内存方式
  • 除了有效市场假说,还有哪些理论能更好的解释经济或者金融活动
  • 咨询手机网站建设平台400电话网站源码
  • 【阿里巴巴大数据之路】事实表设计
  • 建设网站之前都需要准备什么问题广东vs北京首钢
  • 四川住房城乡建设厅网站企业模拟网站建设
  • 多媒体标签全解析:img、audio、video标签详解
  • 【139套财务会计excel模板】免费分享
  • 免费网站如何被百度收录wordpress图片特效
  • 网站框架有哪些网站页面优化怎么做
  • 虚幻引擎虚拟制片入门教程 之 Sequencer 常用技巧
  • 个人网站备案简介怎么写企业网站建设的征求意见
  • 如何做网络营销推广工作做外贸seo优化的上市公司
  • 怎样建网站买东西电商网站管理系统模板下载
  • ping一下新浪网站怎么做树莓派wordpress博客
  • 网站建设服务器租用找网站的方法
  • 解码Linux文件IO之LCD屏原理及应用
  • Java集合体系 —— Map篇
  • 大连网站制作代理价格北京小程序开发价格