第4章 組合數(shù)據(jù)類型_第1頁
第4章 組合數(shù)據(jù)類型_第2頁
第4章 組合數(shù)據(jù)類型_第3頁
第4章 組合數(shù)據(jù)類型_第4頁
第4章 組合數(shù)據(jù)類型_第5頁
已閱讀5頁,還剩104頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第4章組合數(shù)據(jù)類型序列類型概述列表類型:定義、操作元組類型:定義、操作集合類型:定義、操作知識要點(diǎn)字符串類型:定義、操作字典類型:定義、操作序列類型概述序列類型概述序列由一組存在先后關(guān)系的元素組成。元素通過索引訪問,索引從0開始。如:序列名[索引]索引體系有:正向遞增序號和反向遞減序號?!癶ello”123(3,4)[3,4,5]3.14-5-4-3-2-101234正向遞增序號反向遞減序號列表類型創(chuàng)建列表列表(list)是元素的有序集合,元素放在中括號[]中,元素類型可以不同賦值方式>>>ls=['Hello',[1,2],"Python"]>>>ls['Hello',[1,2],'Python']>>>ls=list("Hello")>>>ls['H','e','l','l','o']>>>列表內(nèi)建函數(shù)list()讀取、修改列表元素使用索引讀取列表的一個元素。形式如:通過賦值運(yùn)算符=,修改列表元素值>>>ls=['Hello',[1,2],"Python"]>>>ls[0]'Hello'>>>ls[-1]'Python'>>>ls[0]='Hi'>>>ls['Hi',[1,2],'Python']>>>列表名[索引]遍歷列表元素使用for循環(huán)對列表的元素進(jìn)行遍歷,基本使用方式如下:>>>ls=['Hello',[1,2],"Python"]>>>foriinls:

print(i)

Hello[1,2]Pythonfor<循環(huán)變量>in<列表>:<語句塊>遍歷列表元素結(jié)合索引方式對列表的元素進(jìn)行遍歷:>>>ls=['Hello',[1,2],"Python"]>>>foriinrange(len(ls)): print(ls[i])

Hello[1,2]Pythonfor<循環(huán)變量>inrange(len(<列表>)):<語句塊>列表的切片切片用于獲得列表的一個片段,切片后的結(jié)果也是列表類型<列表名>[N:M:K]切片獲取列表索引從N到M(不包含M),以K為步長的元素組成新的列表,切片使用方式:N:開始索引,正索引默認(rèn)為0,負(fù)索引默認(rèn)為-len(列表名)M:結(jié)束索引,不包含K:步長,默認(rèn)為1列表的切片切片獲取列表類型從N到M(不包含M)的元素組成新的列表。當(dāng)K存在時,切片獲取列表類型從N到M(不包含M)以K為步長所對應(yīng)元素組成的列表。>>>ls=['Hello',[1,2],"Python",99]>>>ls[0:4:2]['Hello','Python']>>>ls[:3]['Hello',[1,2],'Python']>>>ls[:-1]['Hello',[1,2],'Python']>>>ls[:]['Hello',[1,2],'Python',99]>>>ls[::-1][99,'Python',[1,2],'Hello']列表的操作函數(shù)列表通用的操作函數(shù)操作函數(shù)描述len(ls)列表ls的元素個數(shù)(長度)min(ls)列表ls中的最小元素,元素類型可比較max(ls)列表ls中的最大元素,元素類型可比較list(x)將x轉(zhuǎn)變成列表類型,x可以是字符串或字典類型sorted(ls)對列表ls進(jìn)行排序,默認(rèn)升序排序。不會改變原列表的順序sum(ls)列表ls中元素求和列表通用的操作函數(shù)>>>ls=[1,3,4,2,5]>>>max(ls)5>>>sum(ls)15>>>sorted(ls)[1,2,3,4,5]>>>sorted(ls,reverse=True)[5,4,3,2,1]>>>ls==['Hello',[1,2],'Python',99]>>>len(ls)4>>>x="Python">>>ls=list(x)>>>ls['P','y','t','h','o','n']>>>列表的操作方法列表的操作方法使用語法形式:<列表名>.<方法名稱>(<方法參數(shù)>)方法描述ls.append(x)在列表ls最后增加一個元素xls.insert(i,x)在列表ls第i位置插入元素xls.clear()刪除ls中所有元素ls.pop(i)將列表ls中第i項(xiàng)元素取出并刪除該元素ls.remove(x)將列表中出現(xiàn)的第一個元素x刪除ls.reverse()列表ls中元素反轉(zhuǎn)ls.copy()生成一個新列表,復(fù)制ls中所有元素ls.index(x)在ls中檢索元素x首次出現(xiàn)的下標(biāo)ls.sort()列表ls中元素排序,默認(rèn)升序reverse=False。ls.count(x)統(tǒng)計列表ls中元素x出現(xiàn)的次數(shù)列表元素的追加ls.append(x)在列表ls最后增加一個元素x>>>ls=['Hello',[1,2],'Python',99]>>>ls.append(45)>>>ls['Hello',[1,2],'Python',99,45]>>>ls.append([3,4])>>>ls['Hello',[1,2],'Python',99,45,[3,4]]>>>列表元素的擴(kuò)展ls.extend(x),將列表x元素的值,擴(kuò)展到列表ls中,相當(dāng)于列表的合并>>>ls=['Hello',[1,2],'Python',99]>>>ls.extend([3,4])>>>ls['Hello',[1,2],'Python',99,3,4]>>>列表元素的插入ls.insert(i,x)在列表ls中序號i位置上增加元素x>>>ls=['Hello',[1,2],'Python',99]>>>ls.insert(1,'Love')>>>ls['Hello','Love',[1,2],'Python',99]>>>列表元素的刪除ls.remove(x)將刪除列表ls中第一個出現(xiàn)的x元素>>>ls=['Hello','Love',[1,2],'Python',99]>>>ls.remove("Love")>>>ls['Hello',[1,2],'Python',99]>>>列表元素的取出并刪除ls.pop(i)將返回列表ls中第i位元素,并將該元素從列表中刪除;缺省i,則刪除最后一個元素>>>ls=['Hello',[1,2],'Python',99]>>>ls.pop(1)[1,2]>>>ls['Hello','Python',99]>>>>>>ls=['Hello','Python',99]>>>ls.pop()99>>>ls['Hello','Python']>>>列表的清空ls.clear()將列表ls的所有元素刪除,清空列表>>>ls=['Hello',[1,2],'Python',99]>>>ls.clear()>>>ls[]列表元素的反轉(zhuǎn)ls.reverse()將列表ls中元素進(jìn)行逆序反轉(zhuǎn)。>>>ls=['Hello',[1,2],'Python',99]>>>ls.reverse()>>>ls[99,'Python',[1,2],'Hello']列表元素的排序ls.sort()將列表ls中元素進(jìn)行排序,默認(rèn)升序。排序后的列表,覆蓋原列表>>>ls=[1,3,4,2,5]>>>ls.sort()>>>ls[1,2,3,4,5]>>>ls=[1,3,4,2,5]>>>ls.sort(reverse=True)>>>ls[5,4,3,2,1]列表的復(fù)制若只是簡單的賦值語句,是無法實(shí)現(xiàn)列表的復(fù)制的>>>ls=['Hello',[1,2],'Python',99]>>>lt=ls>>>lt['Hello',[1,2],'Python',99]>>>ls[0]="hi">>>ls['hi',[1,2],'Python',99]>>>lt['hi',[1,2],'Python',99]>>>['Hello',[1,2],'Python',99]ls引用對象lt列表的復(fù)制若只是簡單的賦值語句,是無法實(shí)現(xiàn)列表的復(fù)制的>>>ls=['Hello',[1,2],'Python',99]>>>lt=ls>>>lt['Hello',[1,2],'Python',99]>>>ls[0]="hi">>>ls['hi',[1,2],'Python',99]>>>lt['hi',[1,2],'Python',99]>>>[‘Hi',[1,2],'Python',99]ls引用對象lt列表元素的復(fù)制ls.copy()將列表ls中元素進(jìn)行復(fù)制,返回新列表>>>ls=['Hello',[1,2],'Python',99]>>>lt=ls.copy()>>>lt['Hello',[1,2],'Python',99]>>>ls[0]="Hi">>>ls['Hi',[1,2],'Python',99]>>>lt['Hello',[1,2],'Python',99]>>>['Hello',[1,2],'Python',99]ls引用對象['Hello',[1,2],'Python',99]lt引用新對象列表元素的復(fù)制ls.copy()將列表ls中元素進(jìn)行復(fù)制,返回新列表>>>ls=['Hello',[1,2],'Python',99]>>>lt=ls.copy()>>>lt['Hello',[1,2],'Python',99]>>>ls[0]="Hi">>>ls['Hi',[1,2],'Python',99]>>>lt['Hello',[1,2],'Python',99]>>>[‘Hi',[1,2],'Python',99]ls引用對象['Hello',[1,2],'Python',99]lt引用新對象列表元素的索引ls.index(x)在列表ls中檢索元素x第一次出現(xiàn)的序號>>>ls=['Hello',[1,2],'Python',99]>>>ls.index(99)3列表元素的統(tǒng)計ls.count(x)在列表ls中統(tǒng)計元素x出現(xiàn)的次數(shù)。>>>ls=['Hello',[1,2],99,'Python',99]>>>ls.count(99)2列表的其他操作列表元素的合并可以使用+號,將兩個列表合并,增加多個元素。>>>ls=["Hello","Python"]>>>lt=[1,2,3]>>>ls=ls+lt>>>ls['Hello','Python',1,2,3]>>>del保留字,刪除列表內(nèi)容使用Python保留字del對列表元素或片段進(jìn)行刪除,使用方法如下:del<列表名>[<索引序號>]或del<列表名>[<索引起始>:<索引結(jié)束>]>>>ls=['Hello',[1,2],'Python',99]>>>dells[0]>>>ls[[1,2],'Python',99]>>>ls=['Hello',[1,2],'Python',99]>>>dells[1:3]>>>ls['Hello',99]>>>列表——

實(shí)例解析列表——實(shí)例解析編程生成一個1~99數(shù)字的列表,輸入一個2-9之間的正整數(shù),從列表上刪除這個數(shù)的倍數(shù)或者數(shù)位上包含這個數(shù)字的數(shù),并輸出列表。問題分析:如何生成1~99數(shù)字的列表?遍歷列表,如何查找指定數(shù)的倍數(shù)或數(shù)位上包含指定數(shù)的數(shù)?如何刪除滿足條件的數(shù)?列表——實(shí)例解析實(shí)現(xiàn)方法:方法1:使用列表的append()方法

ls=[]foriinrange(1,100):ls.append(i)方法2:使用list()內(nèi)建函數(shù)與range()函數(shù)實(shí)現(xiàn)

ls=list(range(1,100))方法3:直接給列表賦值

ls=[iforiinrange(1,100)]更多…如何生成1~99數(shù)字的列表?列表——實(shí)例解析實(shí)現(xiàn)方法:方法1:綜合使用算術(shù)運(yùn)算符foriinls:ifi%eval(x)==0ori//10==eval(x)ori%10==eval(x):方法2:使用字符串的相關(guān)操作foriinls:ifi%eval(x)==0orxinstr(i):

更多…遍歷列表,如何查找指定數(shù)x的倍數(shù)或數(shù)位上包含指定數(shù)x的數(shù)?x=input(“輸入指定的數(shù):”)列表——實(shí)例解析實(shí)現(xiàn)方法:方法1:使用remove()方法ls.remove(i)方法2:借助于新的列表lt,把不符合刪除條件的數(shù)據(jù)暫存到lt中。lt=[]foriinls:ifnot(i%eval(x)==0orxinstr(i)):lt.append(i)ls=lt.copy()更多…如何刪除滿足條件的數(shù)?列表——實(shí)例解析運(yùn)行效果辨析方法1:使用remove()方法,出現(xiàn)數(shù)據(jù)未刪除干凈。方法2:借助于新的列表lt,成功刪除滿足條件的數(shù)據(jù)。列表——實(shí)例解析運(yùn)行效果辨析方法1:使用remove()方法,出現(xiàn)數(shù)據(jù)未刪除干凈。由于remove()刪除數(shù)據(jù)時,后續(xù)數(shù)字會填充到原位置,導(dǎo)致遍歷遺漏。改進(jìn)方法:逆序遍歷列表。foriinls[::-1]:ifi%eval(x)==0orxinstr(i):ls.remove(i)列表——實(shí)例解析編程生成一個1~99數(shù)字的列表,輸入一個2-9之間的正整數(shù),從列表上刪除這個數(shù)的倍數(shù)或者數(shù)位上包含這個數(shù)字的數(shù),并輸出列表。較為簡潔程序代碼:12345ls=list(range(1,100))x=input("輸入指定的數(shù)字:")foriinls[::-1]:ifi%eval(x)==0orxinstr(i):ls.remove(i)print(ls)6列表——

應(yīng)用實(shí)例約瑟夫環(huán)背后的故事約瑟夫環(huán)問題41個人排成一個圓圈,從第1個人開始報數(shù),報數(shù)到3,該人就必須出列,然后再由下一個重新報數(shù),依次重復(fù),直到剩下約瑟夫和他的朋友為止。輸出依次出列的人的編號,以及約瑟夫和他的朋友的編號。約瑟夫環(huán)問題問題焦點(diǎn):如何實(shí)現(xiàn)滿足條件的元素出列?如何依次考察后續(xù)元素,實(shí)現(xiàn)列表的“環(huán)狀”處理?求解思路:首先生成一個列表ls,存放41個人的編號。約瑟夫環(huán)問題循環(huán)處理:用count作為報數(shù)器,報到3數(shù)字的,將列表元素值置為0,表示該元素出列。通過元素下標(biāo)的計算,實(shí)現(xiàn)列表“環(huán)狀”處理?;蛘撸胕ndex作為元素的索引,采用del操作,讓列表元素出列。通過元素索引的計算,實(shí)現(xiàn)列表“環(huán)狀”處理?;蛘撸柚硪粋€列表,結(jié)合pop()方法,讓列表元素出列。通過列表的extend()方法,實(shí)現(xiàn)列表的“隊列化”處理。約瑟夫環(huán)問題解決方案1用count作為報數(shù)器,報到3數(shù)字的,將列表元素值置為0,表示該元素出列。ls=list(range(1,42))count=0sum=41i=0print("依次出列的人員編號是:")whileTrue:ifsum<3:breakifcount<3andls[i]!=0:count=count+1ifcount==3:#元素出列

print(ls[i],end="")ls[i]=0count=0sum=sum-1i=(i+1)%41#列表“環(huán)狀”處理print("\n幸存者編號是:")foriinls:ifi!=0:print(i,end="")約瑟夫環(huán)問題解決方案2或者,用index作為元素的索引,采用del操作,讓列表元素出列。ls=list(range(1,42))index=2print("依次出列的人員編號是:")foriinrange(39):print(ls[index],end="")dells[index]#元素出列

index=(index+2)%len(ls)#列表“環(huán)狀”處理print("\n幸存者編號是:")print(ls)約瑟夫環(huán)問題解決方案3或者,借助另一個列表,結(jié)合pop()方法,讓列表元素出列。ls=list(range(1,42))print("依次出列的人員編號是:")whileTrue:iflen(ls)<3:breakprint(ls[2],end="")ls.pop(2)#元素出列

lt=ls[0:2]ls.pop(0)ls.pop(0)ls.extend(lt)#列表“隊列化”處理print("\n幸存者編號是:")print(ls)元組類型創(chuàng)建元組元組(tuple)是Python的重要序列結(jié)構(gòu),所有的元素放在圓括號()中,但元素不可改變賦值=方式>>>tup1=('Hello',[1,2],'Python',99)>>>tup1('Hello',[1,2],'Python',99)>>>tup3=(3,)>>>tup3(3,)>>>tup2=tuple("hello")>>>tup2('h','e','l','l','o')內(nèi)建函數(shù)tuple()讀取元組使用索引可以讀取元組的元素,中括號作為索引操作符。形式如:元組名[索引]元組元素值不允許修改>>>tup=('Hello',[1,2],'Python',99)>>>tup[1][1,2]>>>tup[1]=[3,4]Traceback(mostrecentcalllast):File"<pyshell#2>",line1,in<module>tup[1]=[3,4]TypeError:'tuple'objectdoesnotsupportitemassignment>>>元組與列表的區(qū)別對元組的操作函數(shù)和操作方法,與列表相似。元組有不可修改的特性。元組的主要運(yùn)算有合并、遍歷、求最小值、最大值等操作方法。用于對列表的排序、添加等方法,不適用于元組。元組是列表數(shù)據(jù)的一種補(bǔ)充。參數(shù)傳遞,可以設(shè)置為元組類型。字符串類型字符串的創(chuàng)建字符串(str)是字符的有序集合,所有的字符放在單引號’’或雙引號””或三引號’’’‘’’中賦值=方式>>>str1="Hello">>>str1'Hello'轉(zhuǎn)義字符python用\開頭的轉(zhuǎn)義字符表示特殊字符。>>>print("Hello\nWorld")HelloWorld>>>print("\123")S>>>print("Isay:\"Yes!\"")Isay:"Yes!"字符形式含義\n表示換行\(zhòng)t制表符\b退格\\反斜杠\\’單引號\”雙引號\ddd1-3位八進(jìn)制數(shù)代表的字符\xhh1-2位八進(jìn)制數(shù)代表的字符字符串的索引使用索引讀取字符串的一個元素,中括號作為索引操作符,形式如:字符串名[索引]>>>str='ProgramPython'>>>str[-1]'n'字符串切片切片獲取字符串從N到M(不包含M)的片段,切片使用方式:>>>str='ProgramPython'>>>str[8:]'Python'>>>str[0::2]'PormPto'>>><字符串>[N:M:K]字符串的連接、重復(fù)通過運(yùn)算符+,實(shí)現(xiàn)字符串的連接>>>str1="Hello">>>str2='ProgramPython'>>>str=str1+str2>>>str'HelloProgramPython'>>>通過運(yùn)算符*,實(shí)現(xiàn)字符串的重復(fù)>>>str="Hello">>>str*3'HelloHelloHello'>>>字符串的關(guān)系運(yùn)算、成員運(yùn)算通過關(guān)系運(yùn)算符,實(shí)現(xiàn)字符串的比較>>>str1="Hello">>>str2="Python">>>str1>str2False>>>str1==str2False>>>str1<str2True通過成員運(yùn)算符,判斷字符串是否屬于另一個字符串>>>str1="He">>>str2="Hello">>>str1instr2True字符串處理函數(shù)常用的字符串處理函數(shù)>>>len("IlovePython")13>>>chr(65)'A'>>>ord('a')97函數(shù)描述len(x)計算字符串x的長度str(x)返回x對應(yīng)的字符串形式chr(x)返回Unicode編碼x對應(yīng)的單字符ord(x)返回單字符x表示的Unicode編碼hex(x)返回整數(shù)x對應(yīng)的十六進(jìn)制數(shù)oct(x)返回整數(shù)x對應(yīng)的八進(jìn)制數(shù)>>>hex(100)'0x64'>>>oct(100)'0o144'>>>字符串的操作方法字符串操作方法,使用語法形式是:<字符串>.<方法名稱>(<方法參數(shù)>)方法描述str.find(x[,start[,end]])定位子串x在str中第一次出現(xiàn)的位置str.replace(old,new)用字符串new,代替str中的oldstr.split([sep])以sep為分隔符,把str分隔成一個列表sep.join(seq)將序列seq中的元素用連接符sep連接起來str.count(substr[,start[,end]])統(tǒng)計str中子串substr的個數(shù)str.lower()將str全部改為小寫str.upper()將str全部改為大寫str.strip(chars)去掉str兩端chars字符子串的查找str.find(substr[,start[,end]])查找子串substr在str中區(qū)間[start,end)上第一次出現(xiàn)的位置;查找不到,返回-1>>>s1="abca">>>s1.find('a')0>>>s1.find('a',1)3>>>子串的統(tǒng)計str.count(substr[,start[,end]])統(tǒng)計子串substr在str中區(qū)間[start,end)上出現(xiàn)的次數(shù)>>>s1="abcabc">>>s1.count("bc")2>>>子串的替換str.replace(old,new),用字符串new,代替str中的old>>>s1="helloprogram">>>s1.replace("program","python")'hellopython'字符串的分割str.split([sep]),以sep為分隔符,把str分割成一個列表>>>s1="blueredyellow">>>s1.split("")['blue','red','yellow']>>>字符串的連接sep.join(seq),將序列seq中的元素用連接符sep連接起來>>>ls=['blue','red','yellow']>>>",".join(ls)'blue,red,yellow'>>>字符的移除str.strip(chars),將字符串str兩端指定的字符chars移除>>>s1="aaabbcdea">>>s1.strip('a')'bbcde'>>>str.lstrip(chars),str.rstrip(chars),分別將字符串左端或右端指定的字符chars移除實(shí)例解析:統(tǒng)計單詞個數(shù)統(tǒng)計單詞個數(shù)輸入一行英文文字,統(tǒng)計其中單詞的個數(shù)。例如,Ilovepython.Andyou?問題分析:為去除雜亂的標(biāo)點(diǎn)符號,如何對英文字符串進(jìn)行清洗?如何將一個個英文單詞,從字符串中分離出來?如何統(tǒng)計單詞的個數(shù)?統(tǒng)計單詞個數(shù)例如,s=“Ilovepython.Andyou?”實(shí)現(xiàn)方法:遍歷字符串s,將特殊字符替換為空字符串forchins:ifchin"~!@#$%^&*()_+|}{:\"<>?;',./":s=s.replace(ch,"")如何對英文字符串進(jìn)行清洗?去除標(biāo)點(diǎn)符號?統(tǒng)計單詞個數(shù)例如,s=“IlovepythonAndyou”實(shí)現(xiàn)方法:采用split()方法,將字符串以空格分割,形成列表

ls=s.split()如何將一個個英文單詞,從字符串中分離出來?統(tǒng)計單詞個數(shù)例如,ls=['I','love','Python','And','you']實(shí)現(xiàn)方法:采用len()函數(shù),計算列表的長度并輸出

print(len(ls))如何統(tǒng)計單詞的個數(shù)?統(tǒng)計單詞個數(shù)12345s=input("輸入一行文字:")forchins:ifchin"~!@#$%^&*()_+|}{:\"<>?;',./":s=s.replace(ch,"")s=s.strip()ls=s.split("")print("單詞個數(shù):",len(ls))67輸入一行文字:Ilovepython.Andyou?單詞個數(shù):5>>>集合類型集合集合1集合2交集集合類型集合是無序、不重復(fù)的數(shù)據(jù)組合,用花括號{}表示。集合類型,類似于數(shù)學(xué)中的集合,可以進(jìn)行并、交、差等運(yùn)算。集合的創(chuàng)建賦值=方式使用內(nèi)建函數(shù)set()>>>s1={1,2,3,4,3,6,6}>>>s1{1,2,3,4,6}>>>s2=set("hello")>>>s2{'l','o','h','e'}>>>集合的運(yùn)算集合類型有:并(|)、交(&)、差(-)、補(bǔ)(^)4種運(yùn)算,操作邏輯與數(shù)學(xué)定義相同。操作符的運(yùn)算描述S|T返回一個新集合,包括集合S和T中所有元素S&T返回一個新集合,包括同時在集合S和T中的元素S–T返回一個新集合,包括在集合S中但不在集合T中的元素S^T返回一個新集合,包括集合S和T中非共同元素S<=T或S<T判斷S是否是T的子集S>=T或S>T判斷S是否是T的超集集合的運(yùn)算>>>A={1,2,3,4,5}>>>B={4,5,6,7,8}>>>A|B{1,2,3,4,5,6,7,8}>>>A&B{4,5}>>>A-B{1,2,3}>>>A^B{1,2,3,6,7,8}>>>A>=BFalse>>>A<BFalse>>>集合的操作集合常用的操作函數(shù)及方法函數(shù)及方法描述S.add(x)將元素x增加到集合SS.remove(x)刪除集合S中的元素xS.clear()清空S中所有數(shù)據(jù)項(xiàng)len(S)返回集合S中元素的個數(shù)xinS如果x是S的元素,返回True,否則返回FalsexnotinS如果x不是S的元素,返回True,否則返回FalsedelS刪除集合S集合的操作>>>s={1,2,3,4,5}>>>s.add(6)>>>s{1,2,3,4,5,6}>>>s.remove(6)>>>s{1,2,3,4,5}>>>len(s)5>>>6insFalse>>>6notinsTrue>>>s.clear()>>>sset()>>>dels>>>sTraceback(mostrecentcalllast):File"<pyshell#29>",line1,in<module>sNameError:name's'isnotdefined集合1集合2交集利用集合去除重復(fù)元素將列表內(nèi)容去除重復(fù)元素。例如ls=[‘p','p',‘t',‘t',123]問題分析:第一步:將其他類型轉(zhuǎn)換為集合類型。第二步:將集合類型轉(zhuǎn)換為原類型。>>>ls=['p','p',‘t',‘t',123]>>>s=set(ls)>>>ls=list(s)>>>ls[123,'p',‘t']>>>字典類型字典類型字典是Python語言中唯一的映射類型。映射類型是“鍵-值”數(shù)據(jù)項(xiàng)的組合,每個元素是一個鍵值對,表示為(key,value)。鍵值對的基本思想是將“值”信息關(guān)聯(lián)一個“鍵”信息,進(jìn)而通過鍵信息查找對應(yīng)值信息,這個過程叫映射。定義字典時,鍵和值用:分隔。鍵不能重復(fù),值可以重復(fù)。字典的定義字典使用大括號{}建立,每個元素是一個鍵值對,格式如下:

{<鍵1>:<值1>,<鍵2>:<值2>,…,<鍵n>:<值n>}每個鍵值對用冒號:分隔,每對之間用逗號分隔。{'TOM':95,'JERRY':87,'LUCY':64}字典的創(chuàng)建賦值=方式使用使用內(nèi)建函數(shù)dict()>>>d1={‘TOM’:95,‘JERRY’:87,‘LUCY’:64}#賦值方式創(chuàng)建>>>d1{'LUCY':64,'TOM':95,'JERRY':87}>>>d2=dict(ROSE=90,JACK=76)#關(guān)鍵字形式創(chuàng)建>>>d2{'JACK':76,'ROSE':90}>>>d3=dict([('LUCY',64),('TOM',95),('JERRY',87)])>>>d3#元組列表的方式創(chuàng)建{'JERRY':87,'TOM':95,'LUCY':64}>>>訪問字典元素的值要訪問字典中某個元素的值,可以通過鍵來索引字典中鍵值對的索引模式如下,采用中括號格式:>>>d1={'TOM':95,'JERRY':87,'LUCY':64}>>>d1['JERRY']87>>><值>=<字典變量>[<鍵>]字典的元素的修改和增加利用索引和賦值(=)配合,可以對字典進(jìn)行元素的修改或增加。>>>d1={'TOM':95,'JERRY':87,'LUCY':64}>>>d1[‘TOM’]=99#字典元素的修改>>>d1{'LUCY':64,'JERRY':87,'TOM':99}>>>d1[‘ROSE’]=78#字典元素的增加>>>d1{'ROSE':78,'LUCY':64,'JERRY':87,'TOM':99}>>>字典類型的操作字典的操作方法字典類型操作方法,使用語法形式是:<字典變量>.<方法名稱>(<方法參數(shù)>)操作方法描述d.keys()返回字典所有鍵的列表d.values()返回字典所有值的列表d.items()返回字典所有鍵值對的列表d.get(key,default)若鍵存在,返回字典中鍵對應(yīng)的值;否則返回default值d.pop(key,default)若鍵存在,則刪除并返回相應(yīng)值;否則返回default值d.popitem()隨機(jī)從字典中刪除一個鍵值對,以元組(key,value)形式返回d.clear()刪除字典所有的鍵值對返回字典的鍵、值、鍵值對列表d.keys()、d.values()、d.items()這三個方法分別返回字典中的所有鍵、值、鍵值對列表>>>d1={'TOM':95,'JERRY':87,'LUCY':64}>>>d1.keys()dict_keys(['LUCY','JERRY','TOM'])>>>d1.values()dict_values([64,87,95])>>>d1.items()dict_items([('LUCY',64),('JERRY',87),('TOM',95)])>>>以鍵查值d.get(key,default)根據(jù)鍵信息查找并返回值信息。如果key存在則返回相應(yīng)值,否則返回默認(rèn)值>>>d1={'TOM':95,'JERRY':87,'LUCY':64}>>>d1.get('JERRY'','不存在')87>>>d1.get('ROSE','不存在')'不存在'>>>查找并刪除指定元素d.pop(key,default)根據(jù)指定的鍵,返回相應(yīng)值的信息,并予以刪除;否則返回default值>>>d1={'TOM':95,'JERRY':87,'LUCY':64}>>>d1.pop('JERRY','不存在')87>>>d1{'TOM':95,'LUCY':64}>>>d1.pop('ROSE','不存在')'不存在'>>>隨機(jī)刪除字典元素d.popitem()隨機(jī)從字典中取出一個鍵值對,以元組(key,value)形式返回,并從字典中刪除這個鍵值對>>>d1={'TOM':95,'JERRY':87,'LUCY':64}>>>d1.popitem()('LUCY',64)>>>d1{'TOM':95,'JERRY':87}清空字典d.clear()刪除字典中所有鍵值對>>>d1={'TOM':95,'JERRY':87,'LUCY':64}>>>d1.clear()>>>d1{}保留字del刪除字典如果希望刪除字典中某一個元素,可以使用Python保留字del>>>d1={'TOM':95,'JERRY':87,'LUCY':64}>>>deld1['LUCY']>>>d1{'TOM':95,'JERRY':87}deld刪除字典變量,使其不存在>>>d1={'TOM':95,'JERRY':87,'LUCY':64}>>>deld1遍歷字典可以通過遍歷循環(huán)對字典元素進(jìn)行遍歷,基本語法結(jié)構(gòu)如下:從字典中依次取鍵的信息到變量名中>>>d={'TOM':95,'JERRY':87,'LUCY':64}>>>foriind: print("{}的成績是{}".format(i,d[i]))

LUCY的成績是64JERRY的成績是87TOM的成績是95>>>for<變量名>in<字典名>:<語句塊>遍歷字典的鍵從字典中依次取鍵的信息到變量名中>>>d={'TOM':95,'JERRY':87,'LUCY':64}>>>forkind.keys(): print(k)

JERRYLUCYTOM>>>for<變量名>in<字典名>:<語句塊>語法結(jié)構(gòu)如下:遍歷字典的值從字典中依次取值的信息到變量名中>>>d={'TOM':95,'JERRY':87,'LUCY':64}>>>forvind.values(): print(v)

876495>>>for<變量名>in<字典名.values()>:<語句

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論