Python 基礎 - 淺copy補充說明
在 import copy 這個模塊裡
基於第一個列表來做淺copy,實際上第二個列表裡的元素,是第一個列表的 引用。
接下來介紹 淺copy有三種方式可以使用
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
import copy
person = ["name", ["saving", 100]]
p1 = copy.copy(person) # method1
p2 = person[:] # method2
p3 = list(person) # method3
print(p1)
print(p2)
print(p3)
---------------執行結果---------------
['name', ['saving', 100]]
['name', ['saving', 100]]
['name', ['saving', 100]]
Process finished with exit code 0
接下來我們做一個有關夫妻關係的 淺copy 列表
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
import copy
person = ["name", ["saving", 100]]
p1 = person[:]
p2 = person[:]
print(p1)
print(p2)
---------------執行結果---------------
['name', ['saving', 100]]
['name', ['saving', 100]]
Process finished with exit code 0
p1 跟 p2 都是基於 person 淺copy得來的,看上去都是一樣的,所以我們再來修改一下
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
import copy
person = ["name", ["saving", 100]]
p1 = person[:]
p2 = person[:]
p1[0]="Stark"
p2[0]="Potts"
print(p1)
print(p2)
---------------執行結果---------------
['Stark', ['saving', 100]]
['Potts', ['saving', 100]]
Process finished with exit code 0
嗯,觀察出,原本 person列表中的 names 已經被修改過了,接下來我們假設這夫妻合開一個銀行帳戶,當 Stark 去領錢時, Potts的存款應該也是會短少的
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
import copy
person = ["name", ["saving", 100]]
p1 = person[:]
p2 = person[:]
p1[0]="Stark"
p2[0]="Potts"
p1[1][1]=50
print(p1)
print(p2)
---------------執行結果---------------
['Stark', ['saving', 50]]
['Potts', ['saving', 50]]
Process finished with exit code 0
由上面結果得知 Potts的帳戶也短少了50塊,這就是 淺copy使用 聯合帳戶 時的一個範例。
Python 基礎 - 淺copy補充說明的更多相关文章
- Python 基礎 - for流程判斷
今天介紹另一個循環判斷式 for循環,首先,先寫一個很簡單的 for循環的代碼 #!/usr/bin/env python3 # -*- coding:utf-8 -*- for i in range ...
- Python 基礎 - if else流程判斷
hmm~前面講了那麼多,終於可以稍稍的正式進入另一個階段,沒錯,要開始寫判斷式了 這次先從最簡單的判斷式開始,if else 開始- Go 首先,之前有寫有一個簡單的互動式 用戶輸入 的代碼,忘記了嗎 ...
- Python 基礎 - 字典的操作使用
接下來介紹字典,這在未來工作上,會是很常使用的,就來好好了解一下唄- 字典是一個 key(鍵)-value(值) 的數據類型,可以儲存很多訊息 #!/usr/bin/env python3 # -*- ...
- Python 基礎 - pyc 是什麼
Python2.7 版中,只要執行 .py 的檔案後,即會馬上產生一個 .pyc 的檔案,而在 Python3 版中,執行 .py 的檔案後,即會產生一個叫 __pycache__ 的目錄,裡面也會有 ...
- Python 基礎 - 文件操作_v2
嗯,那如何要把游標的位置給打印來? #!/usr/bin/env python3 # -*- coding:utf-8 -*- f = open('test', 'r') print(f.tell() ...
- Python 基礎 - 列表的使用_v2
接下來繼續講之前沒提到的 copy(),我們依續之前的列表,來做觀察,看看使用 copy() 有什麼不一樣? #!/usr/bin/env python3 # -*- coding:utf-8 -*- ...
- Python 基礎 - 列表的使用
如果想要存所有 Marvel's The Avengers 角色的人名,該如何存呢?請用目前已學到的知識來實做- #!/usr/bin/env python3 # -*- coding:utf-8 - ...
- Python 基礎 - 變量
變量 變量主要是用來存東西,是存在內存裡 Python 變量寫法: name = "Nobody One" Shell Script 變量寫法: name="Nobody ...
- python基礎學習第一天
python歷史 Python 是一种解释型.面向对象.动态数据类型的高级程序设计语言.Python 由 Guido van Rossum 于 1989 年底在荷兰国家数学和计算机科学研究所设计出来 ...
随机推荐
- P53 T3
为方便旅客,某航空公司拟开发一个机票预定系统.旅行社把预定机票的旅客信息(姓名.性别.工作单位.身份证号码.旅行时间.旅行目的地等)输入进入该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起 ...
- TFS Workspace 更改电脑名称
不小心改了计算机名称 导致VS在保存项目的时候,包如下错误: 解决方法: 第一步: 第二步:输入如下片段 tf workspaces /updateComputerName:旧计算机名称 /coll ...
- 【Python⑥】python的缩进,条件判断和循环
缩进 Python的最大特色是用缩进来标明成块的代码. 这点和其他语言区别很明显,比如大家熟悉的C语言里: ) { num+=; flag-=; } 而在python中: if flag>= 0 ...
- SharePoint中报表选择
Office 365中制作报表的方式很多. 这里介绍下使用js获取SharePoint List实现报表的一种方法 资源 Jquery 1.8.2 http://blog.jquery.com/201 ...
- ajax属性 data--------------20160705
$.ajax({ type : "get", //这里get和post都可以 url : "cccccc.ccc", data: "name = xx ...
- JavaScript 闭包系列一
一. 闭包的概念 闭包是有权访问另一个函数作用域中的变量的函数. 如下代码:根据变量作用域,函数outer中所有的局部变量对函数inner都是可见的.但是反过来不行,inner内部的局部变量对oute ...
- 一款新的PYTHON数据科学利器:yhat
偶然看文章发现的一个新的python IDE,外表很清新,也很新颖. https://www.yhat.com/products/rodeo 看图说话,软件的布局确实很新颖,和Notebook类似,也 ...
- CentOS 5系统安装Django、Apache 、mod_wsgi部署Python环境教程
Django,是一款针对Python环境的WEB开发框架,能够帮助我们构架快捷.简单的WEB框架设置,Django框架非常适合开发内容应用环境,所以在本文中,麦子将整理基于Centos系统部署安装Dj ...
- STM32——CAN通讯实现
CAN通讯的实现步骤: 1.CAN初始化,其中包括:a.配置CAN时钟,配置IO: b.使能CAN中断向量: c.CAN硬件寄存器配置初始化: d.过滤器初始化: e.打开CAN中断. 2.CAN发送 ...
- boost和C++11中的sleep
boost boost线程中表示睡眠的函数有sleep和sleep_for sleep 例如: boost::this_thread::sleep(boost::posix_time::seconds ...