




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Python基礎(chǔ)編程元祖和字典第4章010203040506元祖操作元祖元祖函數(shù)本章字典0708列表推導(dǎo)式字典函數(shù)&方法淺拷貝與深拷貝操作字典元祖01元祖Python的元祖和列表類似,不同之處在于元祖的元素不能被修改,而列表的元素可以被修改。也可進(jìn)行分片和連接操作。元祖使用小括號(hào)創(chuàng)建,列表使用方括號(hào)創(chuàng)建元祖創(chuàng)建語法元祖名=(元素1,元素2,元素n…….)示例students=('jack','tom','john','amy','kim','sunny’)操作元祖02元組元組索引:以下元組成名為students,要元祖中的tomjacktomjohnamykim…34n20
1students[
1]刪除元祖可以使用del語句來刪除整個(gè)元祖元祖和列表不一樣,元祖中的元素值是不允許被單獨(dú)修改和刪除的,但是刪除元祖語法del
元組名示例tuple1=('abcd',123,3.33,'o')print("刪除之前的元祖為:",tuple1)del
tuple1print("刪除之后的元祖為:",tuple1)元組截取和截取元組中指定元組的元素雖然不能夠被改變,但是元組也是一個(gè)序列,也可以通過索引去位置的元素以下元組名為:students,需要截取students的前三個(gè)元素jacktomjohnamykim…01
2students[0:3]students=['jack','tom','john','amy','kim','sunny']print("截取元素0:3",students[0:3])元祖元祖就是元祖中的元祖,元祖中的元素可以是一個(gè)新的元祖以下列元祖為:students,需要獲取元祖中的tomjackjohnamykim…tom18男10 1
2Python元祖函數(shù)03Python元祖函數(shù)函數(shù)&方法描述示例len(tuple)計(jì)算元祖中元素的個(gè)數(shù)tuple1=(4,2,6,10,9,8)num=len(tuple1)print(num)輸出結(jié)果:6max(tuple)返回列表元素中的最大值。tuple1=(4,2,6,10,9,8)num=max(tuple1)print(num)輸出結(jié)果:10min(tuple)返回列表元素中的最小值。tuple1=(4,2,6,10,9,8)num=min(tuple1)print(num)輸出結(jié)果:2tuple(list)將列表轉(zhuǎn)換為元祖students=['jack','tom','john','amy','kim','sunny’]print(students)tuple1=tuple(students)
print(tuple1)輸出結(jié)果:['jack',
'tom',
'john',
'amy',
'kim',
'sunny']('jack',
'tom',
'john',
'amy',
'kim',
'sunny')字典04字典字典是另外一種可變?nèi)萜黝愋停铱梢匀我忸愋蛯?duì)象。列表元素進(jìn)行修改的話,通過索引進(jìn)行修改,如果當(dāng)前元素的順序發(fā)生改變,此時(shí)還需要修改索引才能成功完成元素的修改。有沒有辦法,既能多個(gè)數(shù)據(jù),又能很方便準(zhǔn)確的定位元素呢?答:字典字典創(chuàng)建語法:字典的創(chuàng)建使用{},每個(gè)鍵值(key=>value)對(duì)用冒號(hào)(:)分割,每對(duì)之間用逗號(hào)(,)分割。字典名={key1:value1,key2:value2}示例students={'name':'Tom','age':18,'sex':'男',18:19}操作字典05字典tom18男sexname
agestudents['name']字典中根據(jù)鍵
值,可以指定自點(diǎn)名和放在方括號(hào)內(nèi)的鍵。以下字典想要獲取學(xué)員
。字典:students={'name':'tom','age':18,'sex‘:’男'}修改字典元素修改為20tom18男sexname
agestudents['age']=20字典元素也是可以修改的,通過key找到具體元
后,給一個(gè)新的元素值即可。以下字典將學(xué)員的字典:students={'name':'tom','age':18,'sex‘:’男'}name
agestudents['address']='sex'添加元素動(dòng)態(tài)的向字典中添加元素的時(shí)候,只要添加的鍵在字典中不存在,就會(huì)新增這個(gè)元素。在以下字典中添加一個(gè)住址信息字典:students={'name':'tom','age':18,'sex':'男'}tom18海address刪除字典元素使用del語句刪除元素:del既可以刪除指定的字典元素(列表也可以指定),也可以刪除整個(gè)字典,如果不指定key,代表刪除整個(gè)字典。語法如下:del
字典名[key]使用clear()方法清空整個(gè)字典:被清空的字典最后會(huì)剩下一個(gè)空的字典在,而用del刪除的字典在程序當(dāng)中就不存在了。語法如下:字典名.clear()字典函數(shù)&方法06Python字典函數(shù)函數(shù)描述示例len(dict)計(jì)算字典中元素的個(gè)數(shù)dict1={'name':'Tom','age':18,'sex':'男',18:19}print(len(dict1))輸出結(jié)果:4str(dict)輸出字典,已可打印的字符串表示dict1={'name':'Tom','age':18,'sex':'男',18:19}str1=str(dict1)print(str1)print(type(str1))#判斷str1是的數(shù)據(jù)類型輸出結(jié)果:{'name':'Tom','age':
18,
'sex':'男',18:
19}<class
'str'>type(variabl返回輸入變量的數(shù)據(jù)類dict1={'name':'Tom','age':18,'sex':'男',18:19}e)型,如果變量是字典就print(type(dict1))輸出結(jié)果:返回<class‘dict’>{'name':'Tom','age':
18,
'sex':'男',18:
19}<class
'dict'>Python字典方法方法描述示例dict.fromkeys(seq[,value])創(chuàng)建一個(gè)新字典,以序列seq中元素seq=('name','age','sex')dict1=dict.fromkeys(seq)做字典的值,print("新字典為:",dict1)value為字典所有dict2=dict.fromkeys(seq,'jack’)鍵對(duì)應(yīng)的初始值print("新字典為:",dict2)輸出結(jié)果:新字典為:{'name':None,
'age':
None,'sex':None}新字典為:{'name':'jack','age':'jack','sex':
'jack'}dict.get(key,default=None)返回指定鍵的值,如果值不在字典
中返回default值dict1={'name':'tom','age':18}print
("age鍵的值為:",dict1.get('age',9))print
("sex鍵的值為:",dict1.get('sex','男'))輸出結(jié)果:age鍵的值為
: 18
sex鍵的值為
:
男Python字典方法方法描述示例key
in
dict如果鍵在字典
dict里返回
true,否則返回falsedict1={'name':['tom','jack'],'age':18,'sex':'男',18:19}if
'name'
in
dict1:print("鍵name在字典中存在")else:print("鍵name在字典中不存在")輸出結(jié)果:鍵name在字典中存在dict.keys()以列表返回一個(gè)字典所有的鍵dict1={'name':['tom','jack'],'age':18,'sex':'男',18:19}print(dict1.keys())輸出結(jié)果:dict_keys(['name',
'age',
'sex',
18])Python字典方法方法描述示例dict.setdefault和get類似,但如dict1={'name':'tom','age':18}(key,default=No果鍵不存在于字典中,將會(huì)添加print
("age鍵的值為:",dict1.setdefault('age',9))print
("sex鍵的值為:",dict1.setdefault('sex','男’))ne)鍵并將值設(shè)為print
("新字典為:",dict1)default輸出結(jié)果:age鍵的值為
:
18sex鍵的值為
:
男新字典為:{'name':'tom',
'age':
18,
'sex':'男’}dict.values()以列表返回一個(gè)字典中的所有值dict1={'name':'tom','age':18}print(dict1.values())輸出結(jié)果:dict_values(['tom',
18])Python字典練習(xí)1.創(chuàng)建一個(gè)名為favorite_places的字典。在這個(gè)字典中,將三個(gè)人的名字用作鍵;對(duì)于其中的每個(gè)人,都
他喜歡的1?3個(gè)地方.2.創(chuàng)建多個(gè)字典,對(duì)于每個(gè)字典,都使用一個(gè)寵物的名稱來給給它命名;在每個(gè)字典中,包含寵物的類型及其主人的名字。將這這些字典
在一個(gè)名為pets的列表中,再遍歷該列表,并將寵物的所有信息都打印出來。集合(無序)集合set是基本數(shù)據(jù)類型的一種,它有可變集合(set)和不可變集合(frozenset)兩種。創(chuàng)建集合set、集合set添加、集合刪除、交集、并集、差集的操作都是非常實(shí)用的方法。不是成員關(guān)系initializerarray.array呢淺拷貝與深拷貝07可變(mutable)參數(shù)和不可變(immutable)參數(shù)
Python中string、tuple和number是不可變對(duì)象,而dict、list等是可變對(duì)象;不可變對(duì)象在進(jìn)行重新賦值的時(shí)候,實(shí)際上是將原始值丟棄,將變量指向一個(gè)新值;可變對(duì)象的可變性實(shí)質(zhì)上是指更改可變對(duì)象中的子對(duì)象,比如list中的item元素的更改。Python淺拷貝與深拷貝直接賦值:其實(shí)就是對(duì)象的 (別名)。a
=
[1,2,3]b
=
[11,22,33]c
=
[111,222,333]var01
=[a,b,c]var02
=var01print(var01)print(var02)print(id(var01)) #id獲取變量在內(nèi)存中的地址print(id(var02))print('
')一個(gè)新元素a.append(4) #
aprint(var01)print(var02)print(id(var01))print(id(var02))Python淺拷貝與深拷貝淺拷貝:不拷貝子對(duì)象(針對(duì)子對(duì)象中的item),當(dāng)子對(duì)象進(jìn)行更改的時(shí)候,原始對(duì)象也會(huì)改變。常見操作:列表的切片[:]操作、list()操作,字典的
copy()函數(shù)、copy模塊的
copy()函數(shù)(兩個(gè)一模一樣的雙胞胎)Python淺拷貝與深拷貝深拷貝:會(huì)拷貝子對(duì)象,當(dāng)對(duì)原始對(duì)象子對(duì)象進(jìn)行更改的時(shí)候,原始對(duì)象不會(huì)改變。常見操作:copy模塊的deepcopy()函數(shù)舉例:importcopylist_0=["A","B",["C","D"],"E"]list_1=copy.copy(list_0)list_2=list_0.copy()list_3=list_0[:]list_4=list(list_0)#---深拷貝的拷貝方式---
list_d=copy.deepcopy(list_0)#---深淺拷貝的區(qū)別---
#1.對(duì)第一層數(shù)據(jù)進(jìn)行賦值list_0[0]="X0"list_1[0]="X1"list_2[0]="X2"list_3[0]="X3"list_4[0]="X4"list_d[0]="Xd"#打印結(jié)果:理所當(dāng)然,所有列表都發(fā)生了變化#list_0:['X0','B',['C','D'],E]#list_1:['X1','B',['C','D'],E]Python淺拷貝與深拷貝思路一:利用切片操作和list方法拷貝等就叫淺拷貝,只是拷貝了最的對(duì)象本身,
的元素都只是拷貝了一個(gè)
而已。思路二:利用copy中的deepcopy方法進(jìn)行拷貝就叫做深拷貝,
和元素都進(jìn)行了拷貝對(duì)象本身,而不是
。但是對(duì)于數(shù)字,字符串和元組類型對(duì)象,沒有被拷貝的說法,即便是用深拷貝,查看id的話也是一樣的,如果對(duì)其重新賦值,也只是新創(chuàng)建一個(gè)對(duì)象,替換掉舊的而已。列表推導(dǎo)式08推導(dǎo)式列表推導(dǎo)式:列表推導(dǎo)式(listcomprehension)是利用其它列表創(chuàng)建新列表的式,工作原理類似for循環(huán),即可對(duì)得到的元素進(jìn)行轉(zhuǎn)換變形,其基本格式如下(可以有多個(gè)for語句)集合推導(dǎo)式:集合推導(dǎo)式跟列表推導(dǎo)式非常相似,唯一區(qū)別在于用{}代替[]。其基本格式如下:{
expr
for
value
in
collection
if
condition
}[expr
for
value
in
collection
ifcondition]expr可以使for循環(huán)的變量,也可以是表達(dá)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 江西省吉安市2025年八年級(jí)下學(xué)期數(shù)學(xué)月考試卷含答案
- 人普銷毀報(bào)告范文
- 后廚基礎(chǔ)知識(shí)培訓(xùn)課件
- 秋收調(diào)研報(bào)告范文
- 汽車培訓(xùn)報(bào)告范文
- 汽車交付報(bào)告范文
- 2025年度魚塘承包與漁業(yè)品牌建設(shè)合作協(xié)議
- 二零二五年度城市綜合體裝修工程轉(zhuǎn)讓合同
- 2025順豐快遞時(shí)效服務(wù)標(biāo)準(zhǔn)合同模板
- 二零二五年度金融服務(wù)代管正規(guī)委托書
- 政務(wù)服務(wù)一網(wǎng)通辦平臺(tái)解決方案-最新
- 公司派車表單模板
- IPC-7351表面貼裝設(shè)計(jì)和焊盤圖形標(biāo)準(zhǔn)
- 女生-青春期教育(課堂)課件
- 第十四屆全國交通運(yùn)輸行業(yè)職業(yè)技能競賽(公路收費(fèi)及監(jiān)控員)賽項(xiàng)題庫-上(單選題匯總-共3部分-1)
- NBT 10664-2021 核電廠工程巖土試驗(yàn)規(guī)程
- 中醫(yī)藥膳學(xué)(中篇-藥膳原料)共66張課件
- 醫(yī)院產(chǎn)前篩查中心設(shè)置評(píng)審驗(yàn)收工作匯報(bào)課件
- 公司生產(chǎn)進(jìn)度表
- 2019年遠(yuǎn)程開具電子處方管理制度及操作規(guī)程版
- 房室結(jié)雙徑路傳導(dǎo)的基本電生理特征與常見心電圖表現(xiàn)分析課件
評(píng)論
0/150
提交評(píng)論