手机版 | 登陆 | 注册 | 留言 | 设首页 | 加收藏
当前位置: 网站首页 > python教程 > 文章 当前位置: python教程 > 文章

老余零基础学python的学习方法第71天零基础学pythonppt豆瓣

时间:2022-04-29    点击: 次    来源:网络    作者:佚名 - 小 + 大

老余零基础学python的学习方法第71天零基础学pythonppt豆瓣


下载地址

https://share.weiyun.com/S11bpehi


资料目录

小甲鱼零基础学python视频全套96集
小甲鱼零基础入门学习Python pdf
小甲鱼零基础学python第二版 pdf
小甲鱼零基础入门学习Python全套课件+源码
鱼c小甲鱼零基础学python全套课后题及答案
零基础学Python张志强 赵越等编著7小时多媒体视频教程
极客尹会生零基础学python教程视频1-71集
零基础学python 老齐pdf电子书
零基础学python全彩版pdf电子书
零基础学python全彩版实战与答案
黑马程序员python零基础教程(附带教学课件+开发工具+环境配置)
零基础Python实战 四周实现爬虫网站

刘金玉零基础python入门到精通教程100集全套VIP精选
《21天学通Python》刘凌霞,郝宁波,吴海涛编著  电子工业出版社
《从零开始学Python网络爬虫》罗攀 将仟 编著  机械工业出版社
《零基础搭建量化投资系统——以Python为工具》何战军等编著    电子工业出版社
《零基础轻松学Python》小码哥著    电子工业出版社
《零基础学Python》张志强等编著  机械工业出版社
《零起点Python大数据与量化交易》何海群著  电子工业出版社
《零起点Python机器学习快速入门》何海群著  电子工业出版社
《零起点Python足彩大数据与机器学习实盘分析》何海群著  电子工业出版社
Python3.5从零开始学(2017v3.x) 刘宇宙编著  清华大学出版社
Python机器学习及实践——从零开始通往Kaggle竞赛之路 by 范淼,李超编著
Python练习集100题
从零开始学Python第二版 极客学院出版
零基础入门学习Python 小甲鱼编著  清华大学出版社
零基础学python 老齐著
零起点Python大数据与量化交易 何海群著  电子工业出版社

跟老齐学Python从入门到精通    电子工业出版社

举例

拷贝是copy的音译,标准的汉语翻译是“复制”。
在一般的理解中,copy就是将原来的东西再做一份。但是,在Python里面(乃至于很多编程语言中),copy可不是那么简单的。
>>> a = 5
>>> b = a
>>> b
5
这样做是不是就得到了两个5了呢?表面上看似乎是,但是,不要忘记在前面反复提到的:对象有类型,变量无类型,正是因为这句话,变量其实是一个标签。不妨请出法宝:id(),专门查看内存中的对象编号。
>>> id(a)
139774080
>>> id(b)
139774080
果然,并没有两个5,就一个,只不过是贴了两张标签而已。这种现象普遍存在于Python的多种数据类型中。其他的就不演示了,就仅看看dict类型。
>>> ad = {"name":"qiwsir", "lang":"python"}
>>> bd = ad
>>> bd
{'lang': 'python', 'name': 'qiwsir'}
>>> id(ad)
3072239652L
>>> id(bd)
3072239652L
又是一个对象贴了两个标签,这是用赋值的方式实现的所谓“假装拷贝”。那么如果用copy的方法呢?
>>> cd = ad.copy()
>>> cd
{'lang': 'python', 'name': 'qiwsir'}
>>> id(cd)
3072239788L
这次得到的cd跟原来的ad是不同的,它在内存中另辟了一个空间。
如果我尝试修改cd,应该对原来的ad不会造成任何影响。
>>> cd["name"] = "itdiffer.com"
>>> cd
{'lang': 'python', 'name': 'itdiffer.com'}
>>> ad
{'lang': 'python', 'name': 'qiwsir'}
真的跟推理一模一样。所以,只要理解了“变量”是对象的标签,对象有类型而变量无类型,就能正确推断出Python能够提供的结果。刚才已经看到了,bd和ad引用了同一个内存对象。
>>> bd
{'lang': 'python', 'name': 'qiwsir'}
>>> bd["name"] = "laoqi"
>>> ad
{'lang': 'python', 'name': 'laoqi'}
>>> bd
{'lang': 'python', 'name': 'laoqi'}
修改了bd所对应的“对象”,ad的“对象”也变了。
然而,事情并没有那么简单,下面看仔细一点,否则就迷茫了。
>>> x = {"name":"qiwsir", "lang":["python", "java", "c"]}
>>> y = x.copy()
>>> y
{'lang': ['python', 'java', 'c'], 'name': 'qiwsir'}
>>> id(x)
3072241012L
>>> id(y)
3072241284L
y是从x拷贝过来的,两个在内存中是不同的对象。
>>> y["lang"].remove("c")
在y所对应的字典对象中,键"lang"的值是一个列表,为['python','java','c'],这里用remove()删除其中的一个元素"c"。删除之后,这个列表变为:['python','java']。
>>> y
{'lang': ['python', 'java'], 'name': 'qiwsir'}
那么,x所对应的字典中,这个列表变化了吗?应该没有变化,因为按照前面所讲的,它是另外一个对象,两个互不干扰。
>>> x
{'lang': ['python', 'java'], 'name': 'qiwsir'}
仔细观察,是不是有点出乎意料呢?我没有作弊哦。如果不信,就按照操作自己在交互模式中试试,是不是也能够得到这个结果呢?这是为什么?
但是,如果要操作另外一个键值对:
>>> y["name"] = "laoqi"
>>> y
{'lang': ['python', 'java'], 'name': 'laoqi'}
>>> x
{'lang': ['python', 'java'], 'name': 'qiwsir'}
前面所说的原理是有效的,为什么当值是列表的时候就不奏效了呢?
要破解这个迷局还得用id():
>>> id(x)
3072241012L
>>> id(y)
3072241284L
x和y对应着两个不同的对象,的确如此。但这个对象(字典)是由两个键值对组成的,其中一个键的值是列表。
>>> id(x["lang"])
3072243276L
>>> id(y["lang"])
3072243276L
发现了这样一个事实:列表是同一个对象。
但是,作为字符串为值的那个键值对分属不同的对象。
>>> id(x["name"])
3072245184L
>>> id(y["name"])
3072245408L
这个事实就说明了为什么修改一个列表,另外一个也跟着修改;而修改一个字符串,另外一个不跟随的原因了。

上一篇:零基础学python爬虫数据分析与可视化从入门到精通pdf下载

下一篇:没有了

推荐阅读
声明 | 联系我们 | 关于我们
备案ICP编号  |   QQ:2151239526  |  地址:北京市东城区  |  电话:16605168200  |