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 年底在荷兰国家数学和计算机科学研究所设计出来 ...
随机推荐
- SetProcessAffinityMask的问题
BOOL WINAPI SetProcessAffinityMask( _In_ HANDLE hProcess, _In_ DWORD_PTR dwProcessAffinityMask );//M ...
- Practical Malware Analysis里有关inetsim\APATEDNS
以前从未接触过linux,碰到了许多问题,按步骤: 1\安装VMWARE,安装ubuntu16.04 问题1:之前装的是VM10,装完后没有安装VMTOOLS,我点安装 VMTOOLS,它弹出“简易安 ...
- LeetCode 3 Longest Substring Without Repeating Characters 区间,想法 难度:1
https://leetcode.com/problems/longest-substring-without-repeating-characters/ 思路:从某点结束所能取到的最早开头是到目前出 ...
- 专家解读:BPM与OA的区别
演进历程 传统OA 模块化架构,仅能满足管理执行的刚性效率,系统的专业化程度有限. BPM 平台化架构,管理要求精细化程度高,系统更专业化,更注重整合. BPM SAAS 基于云架构,跨组织社交化,系 ...
- equals和“==”
Integer a = new Integer("3"); Integer b = new Integer(3); System.out.println(a==b); System ...
- ASP.NET4.5从零开始(1)
使用Web窗体 引言 前段时间客户A突然提出,B项目希望可以做成BS形式的,之前是CS的,因为我之前也没学过ASP.NET,于是一边百度,一边Coding,马马虎虎的把功能流程给调通,然后就交差了,想 ...
- golang实现随机数
package main import ( "fmt" "time" "math/rand" ) func main() { r := ra ...
- excel表数据对比 个人收集
做了那么久猿,转行做测试以后居然折堕到要用excel来对比数据...~—~.真是人算不如天算...不过没关系,技多不压身. 首先,准备好两个对比的数据表,sheet1 跟sheet2 .在sheet1 ...
- js操作table
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- 一步一步搭框架(asp.netmvc+easyui+sqlserver)-03
一步一步搭框架(asp.netmvc+easyui+sqlserver)-03 我们期望简洁的后台代码,如下: using System; using System.Collections.Gener ...