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

p1p2 都是基於 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補充說明的更多相关文章

  1. Python 基礎 - for流程判斷

    今天介紹另一個循環判斷式 for循環,首先,先寫一個很簡單的 for循環的代碼 #!/usr/bin/env python3 # -*- coding:utf-8 -*- for i in range ...

  2. Python 基礎 - if else流程判斷

    hmm~前面講了那麼多,終於可以稍稍的正式進入另一個階段,沒錯,要開始寫判斷式了 這次先從最簡單的判斷式開始,if else 開始- Go 首先,之前有寫有一個簡單的互動式 用戶輸入 的代碼,忘記了嗎 ...

  3. Python 基礎 - 字典的操作使用

    接下來介紹字典,這在未來工作上,會是很常使用的,就來好好了解一下唄- 字典是一個 key(鍵)-value(值) 的數據類型,可以儲存很多訊息 #!/usr/bin/env python3 # -*- ...

  4. Python 基礎 - pyc 是什麼

    Python2.7 版中,只要執行 .py 的檔案後,即會馬上產生一個 .pyc 的檔案,而在 Python3 版中,執行 .py 的檔案後,即會產生一個叫 __pycache__ 的目錄,裡面也會有 ...

  5. Python 基礎 - 文件操作_v2

    嗯,那如何要把游標的位置給打印來? #!/usr/bin/env python3 # -*- coding:utf-8 -*- f = open('test', 'r') print(f.tell() ...

  6. Python 基礎 - 列表的使用_v2

    接下來繼續講之前沒提到的 copy(),我們依續之前的列表,來做觀察,看看使用 copy() 有什麼不一樣? #!/usr/bin/env python3 # -*- coding:utf-8 -*- ...

  7. Python 基礎 - 列表的使用

    如果想要存所有 Marvel's The Avengers 角色的人名,該如何存呢?請用目前已學到的知識來實做- #!/usr/bin/env python3 # -*- coding:utf-8 - ...

  8. Python 基礎 - 變量

    變量 變量主要是用來存東西,是存在內存裡 Python 變量寫法: name = "Nobody One" Shell Script 變量寫法: name="Nobody ...

  9. python基礎學習第一天

     python歷史 Python 是一种解释型.面向对象.动态数据类型的高级程序设计语言.Python 由 Guido van Rossum 于 1989 年底在荷兰国家数学和计算机科学研究所设计出来 ...

随机推荐

  1. 测试键盘的控制字符对应的ASCII码值

    #include <stdio.h>#include <termio.h>      //终端操作头文件 char getch(void){     struct termio ...

  2. URL优化之IIS7如何开启伪静态

    iis7跟IIS6开启伪静态重写的方式不一样,iis6是在网站属性里面的ISAPI筛选器里面添加,但是iis7添加伪静态重写,需要下载一个url重写插件. II7/7.5用的是web.config配置 ...

  3. Android ORM应用开发框架KJFrameForAndroid使用详解

    本文将为大家介绍一款Android ORM应用开发框架KJFrameForAndroid,很多时候我们也叫它KJLibrary. KJFrameForAndroid简介 KJFrameForAndro ...

  4. everthing 添加右键菜单

    Tool --> Options --> General -->勾上 Show folder context menus

  5. Ubuntu上安装MySql过程,以及遇到的一些问题

    今天在Ubuntu服务器上安装MySql的时候遇到了一些问题,记录下来,以防以后忘记. 安装环境:Ubuntu14.04 安装命令: //安装Mysal服务端//会提示输入root密码 sudo ap ...

  6. webView与OC的交互

    layout: post title: webView 的 iOS 与 js 交互 subtitle: iOS 与 js 交互的几种方式 author: manajay date: 2016-05-3 ...

  7. Visro 应用的前端模板工具介绍 -JsRender

    1.什么是JsRender: JsRender是一款JavaScript模版引擎,是具有简单直观,功能强大,可扩展的,早期版本是基于JQUERY 写的,后来作者重构了,就不再依赖JQUERY了. 它的 ...

  8. angular js 图片轮播

    搬运工: eg1: Build a Sweet AngularJS Photo Slider Pt 2 with ngTouch DEMO:http://paul-xiao.github.io/ang ...

  9. powershell开源新闻及简介

    作者:PowerShll传教士 问:微软的PowerShell脚本语言已经开源了 ? 答:绝对真的!已经! 问:源码在哪? 答:微软.net源码网站.   http://referencesource ...

  10. javafx之HTTP协议交互

    javafx端要获取获取如下信息: 服务器端获取的数据: javafx客户端发送的数据以及获取的数据: 工程目录: package Httputil; import IPsite.IPaddress; ...