python 學習深淺拷貝、集合、、作用域、函數
python 學習深淺拷貝、集合、、作用域、函數
2020開年新冠肺炎流行大部分人員、工廠、單位無法復工生產,人員隔離每天外出都要戴口罩,在家隔離期間悶壞了感覺把半年的口糧都幹掉了,嚴重考察大家的資本厚度,估計很多年輕人快要吃土,咱們還是要繼續學習python爭取有機會增加錢包厚度,爭取在以後的生活中可以像有錢人一樣實現財務自由
深淺拷貝 # 淺拷貝----只拷貝第一層copy()
import copy
husband = ['xiaohu', 111, [15000, 6000]] wife = husband.copy() #淺拷貝
wife[0] = 'jiujingfazi'
wife[1] = 222
wife[2][1] -= 3000
print(husband)
print(wife) # 深拷貝----deepcopy() 拷貝一份
xiaosan = copy.deepcopy(husband) #深拷貝
xiaosan[0] = 'cangjingkong'
xiaosan[1] = 333
xiaosan[2][1] -= 1999
print(xiaosan)
print(wife) #**************************************** set集合,
特點:去除重複(如下打印),無序,可變集合:可添加和刪除元素,非可哈希的,不可做鍵
集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了
关系测试,测试两组数据之前的交集、差集、并集等关系 s = set('cangjingkong')
print(s) #{'k', 'i', 'a', 'c', 'g', 'j', 'o', 'n'} s4 = set([12, 'dd', 'ff'])
s4.add('uu')#添加一個元素
print(s4) #******************************************* s4.update('fuck')#更新
print(s4) s4.update('jjj')#更新,重複的話只更新進去1個
print(s4) s4.update([33, 'li', 'dd'])#更新
print(s4) s4.update('45', '67')#更新
print(s4) s4.remove(33)
print(s4) s4.pop()
print(s4) s4.clear()
print() del s4
print(s4)
#*******************************
#集合類型操作符 print(set('hua') == set('huaua'))#返回一個True
print(set('hua') < set('huawwww'))#返回一個Tru s = set([3,5,9,10]) #创建一个数值集合 t = set("Hello") #创建一个唯一字符的集合 a = t | s # t 和 s的并集 b = t & s # t 和 s的交集 c = t – s # 求差集(项在t中,但不在s中) d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中) 基本操作: t.add('x') # 添加一项 s.update([10,37,42]) # 在s中添加多项 使用remove()可以删除一项: t.remove('H') len(s)
set 的长度 x in s
测试 x 是否是 s 的成员 x not in s
测试 x 是否不是 s 的成员 s.issubset(t)
s <= t
测试是否 s 中的每一个元素都在 t 中 s.issuperset(t)
s >= t
测试是否 t 中的每一个元素都在 s 中 s.union(t)
s | t
返回一个新的 set 包含 s 和 t 中的每一个元素 s.intersection(t)
s & t
返回一个新的 set 包含 s 和 t 中的公共元素 s.difference(t)
s - t
返回一个新的 set 包含 s 中有但是 t 中没有的元素 s.symmetric_difference(t)
s ^ t
返回一个新的 set 包含 s 和 t 中不重复的元素 s.copy()
返回 set “s”的一个浅复制
作用域 變量查找順序:LEGB,局部作用域>外層作用域>當前模塊作用域>python內置作用域 L:local局部作用域
E:enclosing 嵌套作用域
G:global 全局作用域
B:built-in 系統固定模塊裏面的變量
******************
x= int(2.9) #int built-in count = 0 #global def outer():
o_count = 1 #enclosing
def inner():
i_count = 2 #local
print(o_count)
inner()
outer()
***************** 只對模塊,類,函數才能引入新作用域
對於一個變量,內部作用域先聲明就會覆蓋外部變量,不聲明直接使用就是使用的外部作用域變量
內部作用域要修改外部作用域變量時,全局變量要使用glob關鍵字,嵌套作用域變量要使用nonlocal關鍵字 函數是有作用域的,函數中的變量只能在這個函數中使用
先找自己的部分,找不到再找外部作用域 由內而外的找 global :全局變量
nonlocal:局部變量
函數 1.避免重複代碼
2.方便修改,更易擴展
3.保持代碼一致性 函數創建
**************************
define 函數名(參數):#定義一個函數
print('ok') 函數名()#調用這個函數
*************************** 函數名命名規則:
函數名區分大小寫
函數名必須以下劃線或者字母開頭,不能以數字或者特殊字符命名
函數名不能是保留字
*******************
def add(a,b):
print(a+b) add(2,3)
add(4,5)
******************* 函數的參數:
必備參數
關鍵字參數
默認參數
不定長參數:*args放左邊,**kwargs放右边 函數名可以進行賦值
函數名可以作為函數參數,還可以作為函數的返回值
python 學習深淺拷貝、集合、、作用域、函數的更多相关文章
- [Python學習筆記] 使用xlwings 插入註解 (forked 版本)
到今天為止 xlwings 還沒有插入註解的功能 去原始開發者的 Github Pull Requests 他說之前有人有建議要加入這個功能 但他還沒更新~ 如果需要使用 Python 來插入註解的話 ...
- [Python學習筆記] 利用 Python在Excel 插入註解
用Python 來處理excel 檔 用過了 openpyxl 還有 pyexcel目前覺得除了讀寫如果還要使用另外的功能 (像是讀取格子裡的公式)可以用 xlwings 他的首頁標題 " ...
- [Python學習筆記] 抓出msg信件檔裡的附件檔案
想要把msg信件檔案的附件抓出來做處理,找到了這個Python 模組 msg-extractor 使用十分容易,但是這個模組是要在terminal裡執行,無法直接打在IDLE的編輯器上 所以稍微做了修 ...
- [Python學習筆記] 在Centos上安裝 Django
曾在模擬器跟Digital Ocean上安裝成功,我在 Digital Ocean上的是CentOS 7 x64,模擬器的則是Centos 6.雖然Centos 本身已經裝好 Python 但是是2. ...
- 流暢的python學習-3
一.文件操作 #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Thu Apr 23 20:59 ...
- [Python學習筆記] 使用 selenium 抓取網頁並且雙擊滑鼠 (double click)
一開始使用的時候 看官方文件 以為使用 double_click()即可 但後來出現錯誤 AttributeError: 'WebElement' object has no attribute 'd ...
- 無心插柳的Linux學習者代言人——蔡德明
誰是「蔡德明」恐怕沒有多少人知道,不過提到「鳥哥」這個稱號,在臺灣的Linux社群幾乎是無人不知無人不曉,蔡德明正是鳥哥的本名.鳥哥究竟多有名? 如果你是有意學習Linux的初學者,卻不知如何下手,1 ...
- 機器學習基石(Machine Learning Foundations) 机器学习基石 作业三 课后习题解答
今天和大家分享coursera-NTU-機器學習基石(Machine Learning Foundations)-作业三的习题解答.笔者在做这些题目时遇到非常多困难,当我在网上寻找答案时却找不到,而林 ...
- 機器學習基石 机器学习基石 (Machine Learining Foundations) 作业2 Q16-18 C++实现
大家好,我是Mac Jiang,今天和大家分享Coursera-NTU-機器學習基石(Machine Learning Foundations)-作业2 Q16-18的C++实现.尽管有非常多大神已经 ...
随机推荐
- NOI2.2 8758:2的幂次方表示
描述任何一个正整数都可以用2的幂次方表示.例如: 137=27+23+20 同时约定方次用括号来表示,即ab可表示为a(b).由此可知,137可表示为: 2(7)+2(3)+2(0) 进一步:7=22 ...
- Linux 查看磁盘IO并找出占用IO读写很高的进程
背景-线上告警 线上一台服务器告警,磁盘利用率 disk.util > 90,并持续告警. 登录该服务器后通过 iostat -x 1 10 查看了相关磁盘使用信息.相关截图如下: # 如果没有 ...
- Horizontal Pod Autoscaler(Pod水平自动伸缩)
Horizontal Pod Autoscaler 根据观察到的CPU利用率(或在支持自定义指标的情况下,根据其他一些应用程序提供的指标)自动伸缩 replication controller, de ...
- java代码之美(14)---Java8 函数式接口
Java8 函数式接口 之前写了有关JDK8的Lambda表达式:java代码之美(1)---Java8 Lambda 函数式接口可以理解就是为Lambda服务的,它们组合在一起可以让你的代码看去更加 ...
- windows下使用pycharm配置python的virtualenv环境
环境:win10 python2.7.10(64) 在path中配置python环境 注意:我这边的环境是py2和py3共存的,但是我这边默认使用的是py2. 在virtualenv环境中安装指定的p ...
- openstack启动云主机的流程
看一下openstack启动云主机的流程图 通过上图分析可以知道: 1. 用户使用Dashboard或者CLI 把认证信息通过REST请求发送给keystone进行认证.2. Keystone校验用户 ...
- BJUT数字图像处理作业
一. n的正方形图像,用FFT算法从空域变换到频域,并用频域图像的模来进行显示. 2) 使图像能量中心,对应到几何中心,并用频域图像的模来进行显示. 3)将频域图象,通过FFT逆变换到空域,并显示. ...
- Android Webview实现有道电子词典
毕业设计android电子词典,先实现的一个小小的demo. 所谓的毕业设计就是用最短的时间学习一门语言,做出一个小的project. activity_main.xml <LinearLayo ...
- Bayesian Non-Exhaustive Classification A case study:online name disambiguation using temporal record streams
一 摘要: name entity disambiguation:将对应多个人的记录进行分组,使得每个组的记录对应一个人. 现有的方法多为批处理方式,需要将所有的记录输入给算法. 现实环境需要1:以o ...
- eclipse使用jdbc方式连接sql server 2012数据库史上最新最详细教程(2015年4月已亲测)
步骤分为3部:1.通过sql server 配置管理器配置1433端口 2.将sqljdbc41.jar类库添加到对应的工程中 3.在java程序中连接数据库 步骤1:打开sql server ...