《Python程序設(shè)計(jì)案例教程》 課件 單元4 列表、元組、字典和集合_第1頁(yè)
《Python程序設(shè)計(jì)案例教程》 課件 單元4 列表、元組、字典和集合_第2頁(yè)
《Python程序設(shè)計(jì)案例教程》 課件 單元4 列表、元組、字典和集合_第3頁(yè)
《Python程序設(shè)計(jì)案例教程》 課件 單元4 列表、元組、字典和集合_第4頁(yè)
《Python程序設(shè)計(jì)案例教程》 課件 單元4 列表、元組、字典和集合_第5頁(yè)
已閱讀5頁(yè),還剩101頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Python編程基礎(chǔ)列

表一、列表的定義與訪問二、列表的常見操作三、切片操作四、嵌套與循環(huán)遍歷引

入大量數(shù)據(jù)如何處理?這類問題的特點(diǎn)是:數(shù)據(jù)量很大,數(shù)據(jù)之間存在一定的內(nèi)在關(guān)系。例如:一個(gè)班有100個(gè)學(xué)生,如果用字符串變量存儲(chǔ)學(xué)生的名字,那么需要100個(gè)變量,可見用字符串變量來(lái)處理這樣的數(shù)據(jù)將十分不方便,甚至不能處理。

*數(shù)據(jù)容器引

入數(shù)據(jù)容器就是一種可以容納多份數(shù)據(jù)的數(shù)據(jù)類型,根據(jù)特點(diǎn)的不同,我們可以將數(shù)據(jù)容器劃分為列表、元組、字典和集合。通過(guò)使用不同的數(shù)據(jù)容器,不僅可提高代碼的簡(jiǎn)潔性,還可以改善數(shù)據(jù)查詢時(shí)的性能,增加代碼的可維護(hù)性。列表定義語(yǔ)法:列表對(duì)象=[元素1,元素2,元素3,……,元素N]在Python中,一個(gè)列表中的數(shù)據(jù)類型可以各不相同,可以同時(shí)分別為整數(shù)、實(shí)數(shù)、字符串等基本類型,甚至是列表、元組、字典、集合以及其他自定義類型的對(duì)象?!纠渴褂贸A縿?chuàng)建列表list1=['abcd',789,2.23,'happy',98.5]print(list1)

執(zhí)行程序,運(yùn)行結(jié)果如下所示:['abcd',789,2.23,'happy',98.5]一、列表(list)的定義與訪問還可以使用list()或range()等函數(shù)來(lái)創(chuàng)建列表【例】list2=list()list3=list(('A','BC',3))list4=list(range(1,5))#利用range()函數(shù)創(chuàng)建一個(gè)列表

使用輸出語(yǔ)句輸出以上列表,運(yùn)行結(jié)果如下所示:[]['A','BC',3][1,2,3,4]一、列表(list)的定義與訪問一、列表(list)的定義與訪問列表中的所有元素都是有編號(hào)的,每個(gè)元素都分配一個(gè)數(shù)字(索引)來(lái)表示它的位置。

列表索引值以0位開始值,-1為從末尾的開始位置。通過(guò)索引獲取序列元素值的格式:序列名[索引]一、列表(list)的定義與訪問【例】訪問list3中的第一個(gè)元素(從頭開始定位),訪問list4中的倒數(shù)第二個(gè)元素(從末尾開始定位)。list3=list(('A','BC',3))list4=list(range(1,5))#使用索引訪問list3[0]list4[-2]

使用輸出語(yǔ)句輸出,運(yùn)行結(jié)果如下所示:A3二、列表的常見操作合并與乘法可以使用加法運(yùn)算(+),實(shí)現(xiàn)兩個(gè)列表的連接??梢允褂眯翘?hào)(*)乘以一個(gè)整數(shù)來(lái)產(chǎn)生新的序列?!纠?】list1=[1,2]list2=[3,4]list3=list1+list2輸出上述列表list3的結(jié)果如下所示。[1,2,3,4]*二、列表的常見操作合并與乘法可以使用加法運(yùn)算(+),實(shí)現(xiàn)兩個(gè)列表的連接。可以使用星號(hào)(*)乘以一個(gè)整數(shù)來(lái)產(chǎn)生新的序列。【例2】list1=[1,2]list2=list1*3

輸出上述列表list2的結(jié)果如下所示。[1,2,1,2,1,2]二、列表的常見操作方

法說(shuō)

明append(x)將x追加至列表尾部extend(L)將列表L中所有元素追加至列表尾部insert(index,x)在列表index位置處插入xremove(x)在列表中刪除第一個(gè)值為x的元素,該元素之后所有元素前移,如果列表中不存在x則拋出異常pop([index])刪除并返回列表中下標(biāo)為index的元素,如果不指定index則默認(rèn)為-1,彈出最后一個(gè)元素;如果彈出中間位置的元素則后面的元素索引減1;如果index不是[-L,L]區(qū)間上的整數(shù)則拋出異常clear()清空列表,刪除列表中所有元素,保留列表對(duì)象index(x)返回列表中第一個(gè)值為x的元素的索引,若不存在值為x的元素則拋出異常count(x)返回x在列表中的出現(xiàn)次數(shù)reverse()對(duì)列表所有元素進(jìn)行原地逆序,首尾交換sort(key=None,reverse=False)對(duì)列表中的元素進(jìn)行原地排序,key用來(lái)指定排序規(guī)則,reverse為False表示升序,True表示降序二、列表的常見操作【例】分析以下代碼中l(wèi)ist2的變化

list=[]list1=['big','data’]list2=list+list1

list2.append('good’)

list2.extend(list1)

list2.insert(0,'hello’)print(list2)list2:['big','data’]list2:['big','data','good’]list2:['big','data','good','big','data’]list2:['hello','big','data','good','big','data']二、列表的常見操作【例】使用del關(guān)鍵字進(jìn)行刪除操作color=['white','black','blue','green’]

del

color[1:]#刪除print(color)#輸出此時(shí)color的值

delcolor#刪除變量colorprint(color)執(zhí)行上述代碼,輸出的結(jié)果如下:['white’]NameError:name'color'isnotdefined#color已經(jīng)不存在了三、切片操作在形式上,切片使用2個(gè)冒號(hào)分隔的3個(gè)數(shù)字來(lái)完成,語(yǔ)法格式如下所示。

[start:end:step]第一個(gè)數(shù)字start表示切片開始位置,默認(rèn)為0;第二個(gè)數(shù)字end表示切片截止(不包含)位置(默認(rèn)為列表長(zhǎng)度);第三個(gè)數(shù)字step表示切片的步長(zhǎng)(默認(rèn)為1)。當(dāng)start為0時(shí)可以省略,當(dāng)end為列表長(zhǎng)度時(shí)可以省略,當(dāng)step為1時(shí)可以省略,

省略步長(zhǎng)時(shí)還可以同時(shí)省略最后一個(gè)冒號(hào)。當(dāng)step為負(fù)整數(shù)時(shí),表示反向切片,這時(shí)start應(yīng)該在end的右側(cè)。三、切片操作【例】閱讀以下代碼,判斷輸出結(jié)果list1=[1,2,['A','B'],3,4,5]list2=list1[1:3]print(list2)

list1[3:4]=[]#將列表list1的第4個(gè)元素用空值覆蓋,即刪除。print(list1)

執(zhí)行程序,運(yùn)行結(jié)果如下所示:

[2,['A','B’]][1,2,['A','B'],4,5]四、嵌套與循環(huán)遍歷嵌套列表可以理解為行列矩陣,每一行列表中有若干個(gè)元素。訪問子列表可以使用索引,訪問子列表中的元素需要使用行和列兩個(gè)索引。列表的嵌套,指的是列表的元素也是列表四、嵌套與循環(huán)遍歷【例】列表的嵌套courses=[['語(yǔ)文','數(shù)學(xué)','英語(yǔ)'],['地理,歷史’],['物理','化學(xué)','生物’]]print(courses[0])print(courses[0][1])print(courses[0][1][1:])

執(zhí)行程序,運(yùn)行結(jié)果如下所示:['語(yǔ)文','數(shù)學(xué)','英語(yǔ)']#元素為列表數(shù)學(xué)#字符串學(xué)#字符串切片四、嵌套與循環(huán)遍歷如果希望訪問嵌套列表的每個(gè)元素,或者說(shuō)希望對(duì)列表中的元素進(jìn)行逐個(gè)處理,可以使用循環(huán)遍歷。通常使用for循環(huán)和while循環(huán)來(lái)實(shí)現(xiàn)?!纠?】使用for循環(huán)遍歷列表color=['white','black','blue','green’]

foritemincolor:print(item,end=",")#顯示列表中的各個(gè)元素,以逗號(hào)分隔四、嵌套與循環(huán)遍歷【例2】使用while循環(huán)遍歷列表la=list(range(1,26,4))i=0result=[]

whilei<len(la):result.append(la[i]*la[i])i+=1print(result)

執(zhí)行程序,運(yùn)行結(jié)果如下所示:[1,25,81,169,289,441,625]感謝您的觀看Python編程基礎(chǔ)元組一、元組的定義與訪問二、元組的常見操作三、元組與列表的區(qū)別引

入列

表*元素可變限制?元素不可變?cè)M一、元組(tuple)的定義與訪問元組(tuple)是包含0個(gè)或多個(gè)元素的不可變的序列類型。從形式上,元組的所有元素放在一對(duì)圓括號(hào)"()"中,元素之間使用逗號(hào)分隔如果元組中只有一個(gè)元素則必須在最后增加一個(gè)逗號(hào)。*可以用賦常量值或tuple()函數(shù)創(chuàng)建元組【例】empty_tuple=()#空元組,與列表不同,使用圓括號(hào)empty_tuple=tuple()#或者使用tuple()a=(1,)#創(chuàng)建只有一個(gè)元素的元組時(shí),需要以逗號(hào)結(jié)尾

#含有多個(gè)元素時(shí)不需要print("a:",a)a2=1,#聲明元組的括號(hào)可以省略print("a2:",a2)b=tuple((1,2,3))print("b:",b)c=('yuwen','shuxue',1997)#元組中包含不同類型的數(shù)據(jù)print("c:",c)print(tuple('Python'))#將其他序列轉(zhuǎn)換為元組類型。一、元組(tuple)的定義與訪問*執(zhí)行上述代碼,得到的結(jié)果為:a:(1,)a2:(1,)b:(1,2,3)c:('yuwen','shuxue',1997)('P','y','t','h','o','n')一、元組(tuple)的定義與訪問同樣的,通過(guò)下標(biāo)索引即可讀取元組中不同的元素值語(yǔ)法格式為:

元組名[索引]【例】a=('C','Python','Java')print(a[1])#輸出:Pythonprint(a[1][2])#輸出:t一、元組(tuple)的定義與訪問元組與列表非常相似,只是元組中的元素值不能被修改。但是可以對(duì)元組進(jìn)行連接組合,產(chǎn)生新的組合?!纠縯up=tuple('abcdefg')#把字符串轉(zhuǎn)換為元組tup[1]='x'修改元組元素操作是非法的運(yùn)行結(jié)果是什么?得到報(bào)錯(cuò)“TypeError:'tuple'objectdoesnotsupportitemassignment”【例2】tup=tuple('abcdefg')#把字符串轉(zhuǎn)換為元組tup=tup+(1,2)print(tup)運(yùn)行結(jié)果('a','b','c','d','e','f','g',1,2)二、元組的常見操作合并與乘法同樣的,元組也可以使用加法運(yùn)算(+)合并多個(gè)元組使用乘法運(yùn)算符(*)重復(fù)多個(gè)元組。【例】a=(1,2,3)b=(4,5,6)c=a+bprint("c:",c)d=a*2print("d:",d)執(zhí)行程序,運(yùn)行結(jié)果如下所示:

*c:(1,2,3,4,5,6)d:(1,2,3,1,2,3)二、元組的常見操作刪除除了元組元素不可被修改外,元組元素也不可以被刪除。但可以使用del語(yǔ)句刪除整個(gè)元組對(duì)象。*元組對(duì)象被刪除后,就不可以再被訪問了,否則會(huì)引發(fā)異常。若執(zhí)行下述代碼會(huì)得到什么結(jié)果?tup=tuple('abcdefg’)deltup[1]報(bào)錯(cuò)提示“TypeError:'tuple'objectdoesn'tsupportitemdeletion”?!纠縯up=tuple('abcdefg’)deltup二、元組的常見操作成員判斷用in操作符判斷對(duì)象是否屬于元組。*【例】a=(1,2,3,1,2,3)print(2ina)運(yùn)行結(jié)果True二、元組的常見操作元組的方法同樣的,可以采用面向?qū)ο蟮姆绞秸{(diào)用元組的方法。例如:使用元組對(duì)象的index()方法可以獲取指定元素在元組中首次出現(xiàn)的下標(biāo)。使用count()方法統(tǒng)計(jì)指定元素出現(xiàn)的次數(shù)。*【例】a=(1,2,3,1,2,3)print(a.index(2))#輸出:1print(a.count(1))#輸出:2二、元組的常見操作元組的方法此外,元組和列表可以相互轉(zhuǎn)換。如果想要修改其元素值,可以通過(guò)內(nèi)置函數(shù)list()和tuple(),將元組轉(zhuǎn)換成列表,修改完后再轉(zhuǎn)換成元組。*【例】tup=tuple('abcdefg')#把字符串轉(zhuǎn)換為元組aList=list(tup)#把元組轉(zhuǎn)換成列表print(aList)aList.append(666)tup=tuple(aList)#把列表轉(zhuǎn)換成元組print(tup)運(yùn)行結(jié)果:['a','b','c','d','e','f','g']('a','b','c','d','e','f','g',666)三、元組與列表的區(qū)別特點(diǎn)元組屬于不可變(immutable)序列列表是可變序列。切片操作元組也支持切片操作,但是只能通過(guò)切片來(lái)訪問元組中的元素,而不允許使用切片來(lái)修改元組中元素的值,也不支持使用切片操作來(lái)為元組增加或刪除元素。常用方法元組沒有提供append()、extend()和insert()等方法,無(wú)法向元組中添加元素;

元組也沒有remove()和pop()方法,也不支持對(duì)元組元素進(jìn)行del操作,不能從元組中刪除元素,而只能使用del命令刪除整個(gè)元組。三、元組與列表的區(qū)別使用由于元組時(shí)不可變序列,因此元組可以作為字典的鍵,而列表不可以。

另外,為確保數(shù)據(jù)不被修改,元組還可以作為函數(shù)的參數(shù)進(jìn)行傳遞。使用Python的內(nèi)部實(shí)現(xiàn)對(duì)元組做了大量?jī)?yōu)化,訪問速度比列表更快。因此,若創(chuàng)建序列主要用于檢索或類似用途,建議用元組;若涉及元素的頻繁修改,建議用列表。感謝您的觀看Python編程基礎(chǔ)字典一、字典的定義與訪問二、字典的常見操作三、字典的遍歷和嵌套引入*映射是通過(guò)鍵值查找一組數(shù)據(jù)值信息的過(guò)程,由“鍵-值”對(duì)組成。通過(guò)鍵可以找到其映射的值。比如手機(jī)通訊錄,姓名和電話之間就存在映射關(guān)系,只要定位到特定姓名,就可以查找到對(duì)應(yīng)的電話號(hào)碼。其中,姓名就類似于“鍵”,而手機(jī)號(hào)碼就類似于對(duì)應(yīng)的“值”。引入*字典(dictionary)是Python中內(nèi)置的映射類型,是包含若干“鍵:值”元素的無(wú)序可變序列。字典中的每個(gè)元素包含用冒號(hào)分隔開的“鍵”和“值”兩部分,不同元素之間用逗號(hào)分隔,所有的元素放在一對(duì)大括號(hào)"{}"中。其中鍵可以是Python中任意不可變數(shù)據(jù),也就是說(shuō)在同一個(gè)字典中,鍵(Key)必須是唯一的,而值是可以重復(fù)的。此外,由于字典中的元素(鍵值對(duì))是無(wú)序的,因此不能對(duì)字典進(jìn)行索引、切片等操作。一、字典的定義與訪問在Python中,字典定義的語(yǔ)法格式如下所示。字典對(duì)象={鍵1:值1,鍵2:值2,…,鍵n:值n}字典對(duì)于值的類型,并沒有過(guò)多的限制,但是鍵的類型必須是數(shù)字、字符串或元組等不可變類型。*一、字典的定義與訪問【例】empty_dict={}#空字典empty_dict=dict()#或者使用dict()#如果字典不為空,那么鍵和值之間要用冒號(hào)":"隔開,元素(鍵值對(duì))之間用","隔開dict1={'weight':100,'height':1.83}一個(gè)空字典可以用一對(duì)花括號(hào)"{}"表示,也可以用dict()函數(shù)創(chuàng)建一、字典的定義與訪問【例】通過(guò)賦值的方式創(chuàng)建字典dict2={}dict2["id"]=101dict2["name"]="Lisa"dict2["age"]=18print("dict2:",dict2)執(zhí)行程序,運(yùn)行結(jié)果如下所示dict2:{'id':101,'name':'Lisa','age':18}一、字典的定義與訪問【例】利用內(nèi)置函數(shù)dict()通過(guò)已有數(shù)據(jù)快速創(chuàng)建字典dict3=dict([(1,'a'),(2,'b'),(3,'c')])print("dict3:",dict3)dict4=dict(a=1,b=2,c=3)print("dict4:",dict4)執(zhí)行程序,運(yùn)行結(jié)果如下所示dict3:{1:'a',2:'b',3:'c'}dict4:{'a':1,'b':2,'c':3}內(nèi)置函數(shù)fromkeys()也可以創(chuàng)建字典,使用給定的鍵,創(chuàng)建一個(gè)新的字典對(duì)象,每個(gè)鍵默認(rèn)對(duì)應(yīng)的值為None。一、字典的定義與訪問【例】利用內(nèi)置函數(shù)fromkeys()創(chuàng)建字典。dict5={}.fromkeys(['id','name','age'])print("dict5:",dict5)dict5['id']='100'print("dict5:",dict5)執(zhí)行程序,運(yùn)行結(jié)果如下所示dict5:{'id':None,'name':None,'age':None}dict5:{'id':'100','name':None,'age':None}fromkeys()是字典的方法,不能單獨(dú)使用一、字典的定義與訪問訪問字典里的值和訪問序列元素是一樣的,通過(guò)方括號(hào)"[]",把相應(yīng)的鍵放入其中,即以鍵作為下標(biāo)可以讀取字典元素,若鍵不存在則會(huì)拋出異常。*【例】aDict={'name':'Dong','sex':'male','age':37}print(aDict['name'])print(aDict['tel'])#輸出:Dong#鍵不存在,拋出異常如何避免由于鍵不存在而引發(fā)的異常?一、字典的定義與訪問【例1】使用操作符in檢查鍵是否存在aDict={'name':'Dong','sex':'male','age':37}if'age'inaDict:print(aDict['age'])執(zhí)行程序,運(yùn)行結(jié)果如下所示37使用操作符in可以檢查指定的鍵是否在字典對(duì)象中存在,如果存在,返回True,否則返回False。一、字典的定義與訪問【例2】利用get()方法>>>aDict.get('name')#鍵存在,返回對(duì)應(yīng)的值

'Dong'>>>aDict.get('city')#鍵不存在,返回None值

None>>>aDict.get('city','不存在')#鍵不存在,返回指定參數(shù)default的值

'不存在'>>>aDict.get('age','不存在')#鍵存在,參數(shù)default無(wú)效

37使用字典內(nèi)置的get()方法可以獲取指定鍵對(duì)應(yīng)的值,并且可以在鍵不存在的時(shí)候返回指定值,如果不指定,則默認(rèn)返回None。語(yǔ)法格式:dict.get(key,default=None)二、字典的常見操作字典元素的讀取使用字典對(duì)象的items()方法可以返回字典的鍵、值對(duì)列表;使用字典對(duì)象的keys()方法可以返回字典的鍵列表;使用字典對(duì)象的values()方法可以返回字典的值列表?!纠?gt;>>aDict={'name':'Dong','sex':'male','age':37}>>>aDict.items()#返回所有鍵-值對(duì)

dict_items([('name','Dong'),('sex','male'),('age',37)])>>>aDict.keys()#返回所有鍵

dict_keys(['name','sex','age’])>>>aDict.values()#返回所有值

dict_values(['Dong','male',37])

*二、字典的常見操作鍵值對(duì)的增加與修改當(dāng)以指定鍵為下標(biāo)為字典賦值時(shí),若鍵存在,則可以修改該鍵的值;若不存在,則表示添加一個(gè)鍵值對(duì)。*【例】>>>aDict['age']=38#修改元素值>>>aDict#此時(shí)aDict的值{'age':38,'name':'Dong','sex':'male'}>>>aDict['address']='SDIBT'#增加新元素>>>aDict#此時(shí)aDict的值{'age':38,'address':'SDIBT','name':'Dong','sex':'male'}二、字典的常見操作方法說(shuō)明dicts.get(key,default)鍵存在則返回相應(yīng)值,否則返回默認(rèn)值dicts.pop(key,default)鍵存在則返回相應(yīng)值,同時(shí)刪除鍵值對(duì),否則返回默認(rèn)值dicts.keys()返回所有的鍵信息dicts.values()返回所有的值信息dicts.items()返回所有的鍵值對(duì)dicts.popitem()刪除字典的最后一個(gè)鍵值對(duì),并將其以元組(key,value)的形式返回(注意:如果字典為空,會(huì)產(chǎn)生KeyError異常)dicts.clear()刪除所有的鍵值對(duì)deldicts[key]刪除字典中的某個(gè)鍵值對(duì)dicts.copy()復(fù)制字典dicts.update(dicts2)更新字典,參數(shù)dicts2為更新的字典*二、字典的常見操作【例】字典常用方法——copy()方法的使用dict1={1:'a',2:'b',3:'c'}#定義字典dict2=dict1.copy()dict2[1]='m’print(dict1)print(dict2)執(zhí)行程序,運(yùn)行結(jié)果如下所示{1:'a',2:'b',3:'c'}{1:'m',2:'b',3:'c'}二、字典的常見操作【例】字典常用方法——update()方法的使用dict1={1:'a',2:'b',3:'c'}#定義字典dict2={1:'x’}dict1.update(dict2)print(dict1)dict3={4:'d’}dict1.update(dict3)print(dict1)執(zhí)行程序,運(yùn)行結(jié)果如下所示{1:'x',2:'b',3:'c'}{1:'x',2:'b',3:'c',4:'d'}update()方法可以向指定的字典中添加另一個(gè)字典中的鍵值對(duì)三、字典的遍歷和嵌套使用上面的keys()、values()和items()等內(nèi)置方法,與for和in配合,就可以用來(lái)遍歷字典對(duì)象中的所有數(shù)據(jù)。*【例】字典的遍歷counts=dict([(1,'a'),(2,'b'),(3,'c')])print("遍歷所有的鍵:",end='')forkeyincounts:print(key,end=',')print("\n遍歷所有的值:",end='')forvalueincounts.values():print(value,end=',')遍歷所有的鍵:1,2,3,遍歷所有的值:a,b,c,三、字典的遍歷和嵌套如同列表和元組一樣,字典中的鍵值對(duì)也可以嵌套。*【例】students={'xiaoZhang':{'scores':[95,92,90],'grade':'A+'},'xiaoWang':{'scores':[90,85,82],'grade':'A'},'xiaoLi':{'scores':[74,80,72],'grade':'B'}}感謝您的觀看Python編程基礎(chǔ)集

合一、集合的定義與訪問二、集合的常見操作引

入元素唯一只能包含不可變類型(或者說(shuō)可哈希)的數(shù)據(jù)無(wú)序的可變序列集合通過(guò)一對(duì)大括號(hào)"{}"將元素括起來(lái)創(chuàng)建集合,或利用set()函數(shù)創(chuàng)建集合。【例】

set1={1,2,3}set2={'Python','Java','C’}#創(chuàng)建空集合時(shí)要注意empty_set1={}print(type(empty_set1))empty_set2=set()一、集合的定義與訪問#此時(shí)創(chuàng)建的不是空集合,而是空字典#輸出結(jié)果:<class'dict’>#創(chuàng)建空集合只能用set()函數(shù)使用set()函數(shù)還可以將其他類型數(shù)據(jù)轉(zhuǎn)換為集合【例】>>>set1=set(range(5,10)){5,6,7,8,9}>>>set2=set([2,4,6])#將列表轉(zhuǎn)換為集合

{2,4,6}>>>set3=set('ABCD')#將字符串轉(zhuǎn)換為集合

{'C','A','D','B’}>>>set4=set([0,1,2,4,0,1,2,3,7,8])#自動(dòng)去除重復(fù)

{0,1,2,3,4,7,8}一、集合的定義與訪問由于集合是無(wú)序序列,因此不能通過(guò)索引的方式訪問集合中的元素,只能通過(guò)遍歷來(lái)訪問集合中所有的元素。此外,集合也同樣支持使用in和notin檢查元素是否在集合中?!纠?gt;>>s_set=set('ABCD’)>>>'E'ins_setFalse>>>'E'notins_setTrue>>>forcins_set:print(c,end=',')D,C,B,A,一、集合的定義與訪問二、集合的常見操作添加與刪除向集合中添加元素可以使用add()和update()方法【例】>>>students={'小劉','小張','小王'}>>>students.add('小李'){'小劉','小李','小王','小張'}>>>students.update('小趙'){'小劉','趙','小李','小','小張','小王’}如果希望使用update()方法,實(shí)現(xiàn)和add()相同的效果,可以將輸出語(yǔ)句改為:不同之處在于,add()方法是把指定的值作為一個(gè)元素添加到集合中;而update()方法是將指定值拆分后,將個(gè)體添加到集合中,即一次性添加多個(gè)元素。students.update({'小趙'})二、集合的常見操作刪除當(dāng)某個(gè)集合不再被使用時(shí),可以使用del命令刪除整個(gè)集合。

移除集合中的對(duì)象,可以使用pop()方法:彈出并刪除一個(gè)元素;remove()方法:直接刪除指定元素;clear()方法:清空集合。執(zhí)行程序,運(yùn)行結(jié)果:{5,7,9}{2,5,7,9}{2,5,9}【例】a={1,5,7,3,9}a.pop()#1a.pop()#3print(a)a.add(2)print(a)a.remove(7)print(a)dela最后一步使用del命令刪除了整個(gè)集合這時(shí),如果依然“print(a)”,會(huì)發(fā)生“name'a'isnotdefined”錯(cuò)誤。二、集合的常見操作集合運(yùn)算跟數(shù)學(xué)中學(xué)習(xí)的集合概念類似,Python中集合也支持交集、并集、差集、包含等數(shù)學(xué)集合運(yùn)算??梢允褂眠\(yùn)算符或內(nèi)置方法實(shí)現(xiàn)相關(guān)操作。運(yùn)算符內(nèi)置方法說(shuō)明A&BA.intersection(B)交集。返回一個(gè)新集合,包含同時(shí)在集合A和B中的元素A|BA.union(B)并集。返回一個(gè)新集合,包含在集合A和B中的所有元素A-BA.difference(B)差集。返回一個(gè)新集合,包含在集合A中但不在集合B中的元素A^BA.symmetric_difference(B)補(bǔ)集。返回一個(gè)新集合,包含集合A和B中元素,但不包含同時(shí)在集合A、B中的元素A<=BA.issubset(B)A是否為B的子集。如果集合A和B相同或者A是B的子集,返回True,否則返回False。A>=BA.issuperset(B)A是否為B的超集。如果集合A和B相同或者A是B的超集,返回True,否則返回False。二、集合的常見操作【例】A={'數(shù)學(xué)','語(yǔ)文','英語(yǔ)','物理','化學(xué)','生物'}B={'數(shù)學(xué)','語(yǔ)文','英語(yǔ)','政治','地理','歷史'}print(A&B)print(A|B)print(A-B)print(A^B)print(A.issubset(B))print(A.issuperset(B))執(zhí)行程序,運(yùn)行結(jié)果:{'英語(yǔ)','語(yǔ)文','數(shù)學(xué)'}{'政治','地理','英語(yǔ)','生物','語(yǔ)文','數(shù)學(xué)','歷史','物理','化學(xué)'}{'生物','物理','化學(xué)'}{'政治','地理','生物','歷史','物理','化學(xué)'}FalseFalse除上述方法外,還可以使用isdisjoint()方法,判斷兩個(gè)集合是否包含相同的元素,如果沒有返回True,否則返回False?!纠緼={1,2,3}B={3,4,5}print(A.isdisjoint(B))#FalseB.remove(3)print(A.isdisjoint(B))#True二、集合的常見操作感謝您的觀看Python編程基礎(chǔ)任務(wù)1邀請(qǐng)同學(xué)共建項(xiàng)目“單絲不成線,獨(dú)木不成林”,團(tuán)隊(duì)的力量是巨大的,團(tuán)隊(duì)合作可以完成個(gè)人無(wú)法獨(dú)立承擔(dān)的大項(xiàng)目。通常一個(gè)工程項(xiàng)目的成功實(shí)施需要多位同學(xué)進(jìn)行團(tuán)隊(duì)合作共同完成,而完整團(tuán)隊(duì)的構(gòu)建可以是由項(xiàng)目發(fā)起人邀請(qǐng)任何同學(xué)參與。本任務(wù)將帶領(lǐng)大家編寫Python程序,利用列表實(shí)現(xiàn)具有修改邀請(qǐng)人員、發(fā)出邀請(qǐng)等功能的邀請(qǐng)同學(xué)共建項(xiàng)目程序。74任務(wù)描述如果你是項(xiàng)目發(fā)起人,你會(huì)邀請(qǐng)誰(shuí)?在項(xiàng)目組建過(guò)程中,有些被邀請(qǐng)者可能無(wú)法參加,這就需要更換邀請(qǐng)名單;也可能由于功能增多或者資金不足等情況,導(dǎo)致邀請(qǐng)人員出現(xiàn)增多或減少等變化。75任務(wù)描述任務(wù)需求——邀請(qǐng)同學(xué)共建項(xiàng)目利用列表實(shí)現(xiàn)程序輸出:根據(jù)名單發(fā)出邀請(qǐng)76任務(wù)實(shí)施完成本任務(wù)需要自定義列表來(lái)存儲(chǔ)邀請(qǐng)名單。步驟一:邀請(qǐng)。1、創(chuàng)建一個(gè)列表guests,存儲(chǔ)3位受邀人名字;2、使用這個(gè)列表打印出邀請(qǐng)消息。77任務(wù)實(shí)施步驟二:修改。1、通過(guò)print()函數(shù)輸出要修改的人員名稱,通過(guò)索引訪問,賦值修改列表元素。2、使用for循環(huán)訪問名單,輸出邀請(qǐng)78任務(wù)實(shí)施步驟三:添加。1、使用insert()函數(shù)分別將三位同學(xué)添加到名單開頭、中間和末尾。再次打印邀請(qǐng)消息,向名單中的同學(xué)發(fā)出邀請(qǐng)。79任務(wù)實(shí)施步驟四:縮減。1、使用pop()函數(shù)不斷刪除名單中的同學(xué),直到只有兩位同學(xué)為止。每次從名單中彈出一位同學(xué)時(shí),打印一條消息。2、對(duì)于余下的兩位同學(xué)中的每一位,都使用print()函數(shù)打印一條消息,指出他依然在受邀人之列。80任務(wù)實(shí)施步驟五:清空。1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論