版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第4章組合數(shù)據(jù)類型4.1序列(字符串、列表、元組)4.2映射-字典4.3集合4.4datetime庫4.1序列01字符串02列表03元組單引號、雙引號、三引號內(nèi)的都是字符串,不可變類型強(qiáng)大的類型,用方括號[]界別,可變類型與列表相似,用小括號()界別,不可變類型序列類型是可迭代的序列是一種基本的重要的數(shù)據(jù)結(jié)構(gòu)中國礦業(yè)大學(xué)計算機(jī)學(xué)院字符串序列4.1.1字符串>>>astr='simpleisbetter'>>>astr'simpleisbetter'>>>bstr='''explicitisbetter'''>>>bstr'explicit\nis\nbetter'單引號雙引號三單引號三雙引號字符串的表示4.1.1字符串字符串的表示>>>cstr="I'mastudent.">>>cstr"I'mastudent.">>>dstr='Asthesayinggoes:"nopains,nogains"'>>>dstr'Asthesayinggoes:"nopains,nogains"'>>>"home"'work’
'homework'>>>estr='hello'>>>estr[0]='H'Traceback(mostrecentcalllast):File"<pyshell#12>",line1,in<module>estr[0]='H'TypeError:'str'objectdoesnotsupportitemassignment>>>str(23.5)'23.5'靈活可實(shí)現(xiàn)字符串連接三引號表示的字符串可作注釋字符串是不可變的可用str()函數(shù)創(chuàng)建字符串4.1.1字符串字符串的操作操作符說明s[i]索引s[i:j]或s[i:j:k]切片s*n重復(fù)s1+s2連接xinsxnotins判斷成員4.1.1字符串字符串的操作-索引
字符串一般是由0或多個字符組成,每個字符稱為元素,每個元素可以通過索引(index)進(jìn)行訪問。索引值用方括號“[]”表示。 sequence[index]4.1.1字符串字符串的操作-索引正向索引01234567891011Hello,world!反向索引-12-11-10-9-8-7-6-5-4-3-2-1訪問模式元素從0開始通過下標(biāo)偏移量訪問一次可訪問一個或多個元素可以使用正向索引號,也可使用反向索引號>>>estr=‘Hello,world!'>>>estr[1]‘e'4.1.1字符串字符串的操作-切片
如果訪問字符串中多個元素,可以通過序列類型的切片操作實(shí)現(xiàn)。切片操作的形式為: sequence[startindex:endindex]切片結(jié)果為:字符串sequence索引值為[startindex,endindex)的左閉右開區(qū)間的子串。>>>astr='simpleisbetter'>>>astr[7:9]'is'4.1.1字符串字符串的操作-切片>>>astr[:6]'simple'>>>astr[-6:]'better'>>>astr[:]'simpleisbetter>>>astr='simpleisbetter'4.1.1字符串字符串的操作-切片
切片操作還可以提供步長的選擇。形式為;sequence[startindex:endindex:steps]其中,steps表示的是切片時遍歷元素的步長,默認(rèn)為1。>>>astr[::2]'smlsbte'>>>astr[5:1:-2]'ep'>>>astr='simpleisbetter'4.1.1字符串字符串的操作-重復(fù)
復(fù)制n次字符串,可以使用重復(fù)運(yùn)算符“*”實(shí)現(xiàn)語法形式為: sequence*n或者n*sequence(n是復(fù)制的份數(shù),必須是一個整數(shù))>>>'apple'*3'appleappleapple'4.1.1字符串字符串的操作-連接
將兩個字符串連接可使用連接運(yùn)算符“+”實(shí)現(xiàn),其語法形式為: sequencel+sequence2>>>'pine'+'apple''pineapple'4.1.1字符串字符串的操作-判斷成員
判斷一個字符串是否為另一個字符串的子串使用in和notin這兩個成員運(yùn)算符語法形式為: objinsequence objnotinsequence>>>astr=‘simpleisbetter‘’’>>>'is'inastrTrue4.1.1字符串轉(zhuǎn)義符
反斜杠“\”開頭緊跟字符,有轉(zhuǎn)義的功能。字符說明\0空字符\t橫向制表符\n換行\(zhòng)r回車\”雙引號\’單引號\\反斜杠\(在行尾時)續(xù)行符\000值為八進(jìn)制數(shù)000的字符\xhh值為十六進(jìn)制數(shù)hh的字符>>>fstr='\101\t\x41\n'>>>print(fstr)A A>>>gstr=r'd:\python\n.py'>>>gstr'd:\\python\\n.py'>>>print(gstr)d:\python\n.py4.1.1字符串字符串的方法
方法是指一段封裝的代碼,通過名字來調(diào)用,實(shí)現(xiàn)預(yù)設(shè)功能。訪問格式為:
“對象名.方法名(參數(shù))”4.1.1字符串字符串的方法capitalize()center()count()encode()endswith()find()format()index()isalnum()isalpha()isdigit()islower()isspace()istitle()isupper()join()ljust()lower()lstrip()maketrans()partition()replace()rfind()rindex()rjust()rpartition()rstrip()split()splitlines()startswith()strip()swapcase()title()translate()upper()zfill()4.1.1字符串字符串的常用方法格式控制S.lower()S.upper()S.center(width)>>>astr="Python">>>astr.lower()'python’>>>astr.upper()'PYTHON’>>>astr.center(11)'Python'>>>astr'Python'4.1.1字符串字符串的常用方法查找S.find(sub[,start[,end]])S.index(sub[,start[,end]])S.count(sub[,start[,end]])>>>bstr='Nopains,Nogains.’>>>bstr.find('No')0>>>bstr.find('no')-1>>>bstr.find('No',2)10>>>bstr.find('No',2,11)-1>>>bstr.index('no')Traceback(mostrecentcalllast):File"<pyshell#46>",line1,in<module>bStr.index('no')ValueError:substringnotfound>>>bstr.count('no')0>>>bstr.count('No')24.1.1字符串字符串的常用方法連接S.join(iter)>>>cstr=’love’>>>cstr.join(['I','Python!'])'IlovePython!’>>>'->'.join((‘Marry’,’female’,’18'))‘Marry->female->18'4.1.1字符串字符串的常用方法替換S.replace(old,new[,count])>>>dstr='Hopeisagoodthing.'>>>dstr.replace('Hope','Love')'Loveisagoodthing.'4.1.1字符串字符串的常用方法分割S.split([sep[,maxsplit]])>>>'simpleisbetter'.split()['simple','is','better']>>>dstr='Iamastudent.'>>>dstr[:-1].split()['I','am','a','student']列表序列4.1.2列表BAC經(jīng)典的序列類型可變類型包含不同類型元素4.1.2列表列表的表示中括號>>>List1=['P','y','t','h','o','n’]>>>List2=[1,'08192037','Mike',19]4.1.2列表列表的創(chuàng)建空括號賦值List內(nèi)置函數(shù)列表解析>>>aList=[]>>>bList=['08192037','Mike',19]>>>cList=[xforxinrange(1,10,2)]>>>dList=list('Python')4.1.2列表列表的操作索引切片重復(fù)連接判斷成員ex4-2.py12345678weekList=['Sun','Mon','Tue','Wed','Thu','Fri','Sat']n=eval(input('Pleaseinputaninteger(1-7):'))if1<=n<=6:print('Todayis',weekList[n]+'.')elifn==7:print('Todayis',weekList[0]+'.')else:print('Inputerror!')Pleaseinputaninteger:3TodayisWed.【例4-2】用戶輸入一個1~7之間的整數(shù),輸出對應(yīng)星期的縮寫。4.1.2列表列表的操作列表可以修改元素值>>>eList=['Sun','Mon','Tue','Wed','Thu','Fri','Sat']>>>eList[0]='sun'>>>eList['sun','Mon','Tue','Wed','Thu','Fri','Sat']>>>eList[1:2]=[]>>>eList[‘sun','Tue','Wed','Thu','Fri','Sat']4.1.2列表列表的方法append()copy()count()extend()index()insert()pop()remove()reverse()sort()4.1.2列表列表的常用方法增加元素L.append(x)L.extend(t)>>>aList=[1,2,3]>>>aList.append(4)>>>aList[1,2,3,4]>>>bList=[1,2,3]>>>bList.extend([4])>>>bList[1,2,3,4]>>>aList.append([5,6])>>>aList[1,2,3,4,[5,6]]>>>bList.extend([5,6])>>>bList[1,2,3,4,5,6]4.1.2列表列表的常用方法刪除元素L.pop(i)L.remove(x)L.clear()>>>cList=[5,6,7,8,9,10,5,6,7,8]>>>cList.pop(5)10>>>cList.pop()8>>>cList[5,6,7,8,9,5,6,7]>>>cList.remove(5)>>>cList[6,7,8,9,5,6,7]>>>cList.clear()>>>cList[]4.1.2列表列表的常用方法拷貝列表L.copy()>>>a=[1,2,4]>>>b=a.copy()#不同于b=a>>>b[1,2,4]>>>b[0]=2>>>b[2,2,4]>>>a[1,2,4]4.1.2列表列表的常用方法拷貝列表L.copy()>>>a=[1,2,[3,4]]>>>b=a.copy() #b=a[:]也是淺拷貝>>>b[1,2,[3,4]]>>>b[0]=5>>>b[2][0]=5>>>b[5,2,[5,4]]>>>a[1,2,[5,4]]copy()是淺拷貝只復(fù)制父對象(一級元素)不復(fù)制內(nèi)部子對象。4.1.2列表列表的常用方法拷貝列表L.copy()deepcopy()是深拷貝>>>importcopy>>>a=[1,2,[5,4]]>>>c=copy.deepcopy(a)>>>c[1,2,[5,4]]>>>c[0],c[2][0]=8,8>>>c[8,2,[8,4]]>>>a[1,2,[5,4]]4.1.2列表列表的常用方法翻轉(zhuǎn)列表L.reverse()>>>weekList=['Sun.’,'Mon.’,'Tues.’,'Wed.',’Thur.’,'Fri.’,'Sat.’]>>>weekList.reverse()>>>weekList['Sat.’,'Fri.’,'Thur.’,'Wed.’,'Tues.’,'Mon.’,'Sun.']4.1.2列表列表的常用方法元素排序L.sort()>>>dList=[9,8,10,7]>>>dList.sort()>>>dList[7,8,9,10]>>>numList=[3,11,5,8]>>>fruitList=['apple’,'banana’,'pear’,'lemon’,'avocado']>>>numList.sort(reverse=True)>>>numList[11,8,5,3]>>>fruitList.sort(key=len)>>>fruitList['pear’,'apple’,'lemon’,'banana’,'avocado']元組序列4.1.3元組
元組用圓括號()標(biāo)識
元組可以存儲不同類型的數(shù)據(jù)對象
元組是不可變的
元組適用于元素不需要改變或需要保護(hù)的場景4.1.3元組元組的創(chuàng)建>>>aTuple=(1,2,3)>>>aTuple(1,2,3)>>>k=1,2,3>>>k(1,2,3)4.1.3元組元組的操作索引切片重復(fù)連接判斷成員>>>bTuple=(['Monday',1],2,3)>>>bTuple(['Monday',1],2,3)>>>len(bTuple)3>>bTuple[0][1]1>>>bTuple[1:](2,3)>>>cTuple=(1,2,[3,4])>>>cTuple[2]=[5,6]Traceback(mostrecentcalllast):File"<pyshell#10>",line1,in<module>cTuple[2]=[5,6]TypeError:'tuple'objectdoesnotsupportitemassignment>>>cTuple[2][0]=5>>>cTuple(1,2,[5,4])4.1.3元組元組的其他作用和特性元組的可變元素可變4.1.3元組元組的其他作用和特性元組用在什么地方?
在映射類型中當(dāng)作鍵使用函數(shù)的特殊類型參數(shù)未明確定義的一組對象通用函數(shù)序列4.1.4序列類型通用函數(shù)類型轉(zhuǎn)換內(nèi)置函數(shù)eval()list()str()tuple()>>>eval('2+2’)4>>>list('Hello,World!')['H','e','l','l','o',',','','W','o','r','l','d','!']>>>tuple('hello')('h','e','l','l',’o')>>>list((1,2,3))[1,2,3]>>>tuple([1,2,3])(1,2,3)>>>str(123)'123'4.1.4序列類型通用函數(shù)常用內(nèi)置函數(shù)len()>>>astr='Hello,World!'>>>len(astr)134.1.4序列類型通用函數(shù)常用內(nèi)置函數(shù)sorted()>>>nTuple=(3,2,5,4)>>>sorted(nTuple)[2,3,4,5]>>>nList=[3,2,5,1]>>>sorted(nList)[1,2,3,5]>>>nList[3,2,5,1]4.1.4序列類型通用函數(shù)常用內(nèi)置函數(shù)序列類型的內(nèi)建函數(shù)返回的是排序后的新列表,原參數(shù)內(nèi)容不變。sorted()列表的方法對原列表排序,改變原列表內(nèi)容。列表.sort()字符串和元組(都是不可變類型)沒有sort()方法4.1.4序列類型通用函數(shù)常用內(nèi)置函數(shù)reversed()>>>nList=[3,2,5,1]>>>reversed(nList)<list_reverseiteratorobjectat0x0000018024361B70>>>>list(reversed(nList))[1,5,2,3]>>>nList[3,2,5,1]4.1.4序列類型通用函數(shù)常用內(nèi)置函數(shù)序列類型的內(nèi)建函數(shù)返回的是序列逆序排序后的迭代器,原列表內(nèi)容不變。reversed()列表的方法在原列表上直接翻轉(zhuǎn),并得到逆序列表,改變原列表內(nèi)容。列表.reverse()字符串和元組(都是不可變類型)沒有reverse()方法4.1.4序列類型通用函數(shù)常用內(nèi)置函數(shù)sum()>>>sum([1,2,3.5])6.5數(shù)值類型可以相加,sum()函數(shù)的參數(shù)是整型或浮點(diǎn)型,返回值是浮點(diǎn)型。4.1.4序列類型通用函數(shù)常用內(nèi)置函數(shù)max()min()>>>aList=['Mon.','Tues.’,’Wed.','Thur.','Fri.','Sat.','Sun.']>>>max(aList)'Wed.’>>>max([1,4,3])4>>>max([1,5,9],[1,6,3])[1,6,3]4.1.4序列類型通用函數(shù)常用內(nèi)置函數(shù)enumerate()>>>seasons=['Spring','Summer','Fall','Winter']>>>list(enumerate(seasons))[(0,'Spring'),(1,'Summer'),(2,’Fall'),(3,'Winter')]>>>list(enumerate(seasons,start=1))[(1,'Spring'),(2,'Summer'),(3,’Fall'),(4,'Winter')]4.1.4序列類型通用函數(shù)常用內(nèi)置函數(shù)zip()>>>list(zip('hello','world'))[('h','w'),('e’,’o'),(‘l','r'),(‘l',’l'),(‘o','d’)]函數(shù)enumerate()和zip()返回的都是迭代器,可通過函數(shù)list()將迭代器轉(zhuǎn)換為list對象。4.1.4序列類型通用函數(shù)練習(xí)題字典映射4.2字典>>>names=['Malin','Zhangyue','Liuhao']>>>scores=[95,78,86]>>>print(scores[names.index('Malin')])95例:保存學(xué)生Python程序設(shè)計課程的成績,包括學(xué)生姓名和成績。有沒有簡潔的表示?查詢某個學(xué)生成績4.2字典字典是Python中唯一內(nèi)置的映射類型鍵(key)值(value)key-value對鍵是唯一的:數(shù)字字符串元組4.2.1字典的創(chuàng)建>>>aScores={'Malin':95,'Zhangyue':78,'Liuhao':86}通過大括號{}直接創(chuàng)建每個元素用逗號分隔每個元素使用冒號形成鍵值對(key-value)字典表示4.2.1字典的創(chuàng)建直接創(chuàng)建>>>aScores={}>>>aScores{}4.2.1字典的創(chuàng)建用dict()函數(shù)創(chuàng)建>>>scores=[('Malin',95),('Zhangyue',78),('Liuhao',86)]>>>bScores=dict(scores)>>>bScores{'Malin':95,'Zhangyue':78,'Liuhao':86}>>>cScores=dict((('Malin',95),('Zhangyue',78),('Liuhao',86)))>>>dScores=dict(Malin=95,Zhangyue=78,Liuhao=86)4.2.1字典的創(chuàng)建用方法fromkeys(seq[,value])創(chuàng)建>>>eScores={}.fromkeys(('Malin','Zhangyue','Liuhao'),90)>>>eScores{'Malin':90,'Zhangyue':90,'Liuhao':90}4.2.2字典的操作鍵值查找字典更新添加元素成員判斷刪除元素元素個數(shù)aScores={'Malin':95,'Zhangyue':78,'Liuhao':86}4.2.2字典的操作鍵值查找>>>aScores['Liuhao']864.2.2字典的操作字典更新>>>aScores['Liuhao']=90>>>aScores{'Malin':95,'Zhangyue':78,'Liuhao':90}4.2.2字典的操作添加元素>>>aScores['Wangbing']=100>>>aScores{'Malin':95,'Zhangyue':78,'Liuhao':90,'Wangbing':100}4.2.2字典的操作成員判斷>>>'Zhangyue’inaScoresTrue4.2.2字典的操作元素個數(shù)>>>len(aScores)44.2.2字典的操作刪除字典>>>delaScores['Malin']>>>aScores{'Zhangyue':78,'Liuhao':90,'Wangbing':100}>>>delaScores4.2.3字典的方法(1)keys()、values()和items()>>>aScores={'Malin':95,'Zhangyue':78,'Liuhao':90}>>>aScores.keys()dict_keys(['Malin','Zhangyue','Liuhao'])>>>aScores.values()dict_values([95,78,90])>>>aScores.items()dict_items([('Malin',95),('Zhangyue',78),('Liuhao',90)])4.2.3字典的方法(2)get()和setdefault()>>>print(aScores.get('Liuhao'))90>>>print(aScores.get(‘Liutao'))None>>>aScores[‘Liutao']Traceback(mostrecentcalllast):File"<pyshell#15>",line1,in<module>aScores[‘Liutao']KeyError:‘Liutao'>>>aScores.setdefault('Liuhao',99)90>>>aScores.setdefault(‘Liutao',99)99>>>aScores{'Malin':95,'Zhangyue':78,'Liuhao':90,‘Liutao':99}4.2.3字典的方法(3)copy()>>>bScores=aScores.copy()>>>bScores{'Malin':95,'Zhangyue':78,'Liuhao':90,‘Liutao':99}4.2.3字典的方法(4)pop()>>>aScores.pop('Liuhao')90>>>aScores{'Malin':95,'Zhangyue':78,‘Liutao':99}4.2.3字典的方法(5)update()>>>bScores={'Malin':95,'Zhangyue':78,'Liuhao':90}>>>aScores={}>>>aScores.update(bScores)>>>aScores{'Malin':95,'Zhangyue':78,'Liuhao':90}>>>cScores={'Malin':100,‘Wang':99}>>>aScores.update(cScores)>>>aScores{'Malin':100,'Zhangyue':78,'Liuhao':90,‘Wang':99}4.2.3字典的方法(6)clear()>>>aScores.clear()>>>aScores{}集合4.3集合什么是集合?
一個無序不重復(fù)的元素的組合可變集合(set)不可變集合(frozenset)去重4.3.1集合的創(chuàng)建集合用“{}”來表示,每個元素用逗號分隔可通過賦值直接創(chuàng)建集合例:>>>aSet={1,3,5,7,9}>>>type(aSet)<class'set'>4.3.1集合的創(chuàng)建使用set()函數(shù)創(chuàng)建可變集合frozenset()函數(shù)創(chuàng)建不可變集合例:>>>bSet=set('hello')>>>bSet{'o','e','h','l’}>>>fSet=frozenset('hello')>>>fSetfrozenset({'o','e','h','l'})4.3.2集合的基本操作數(shù)學(xué)符號Python符號
in
notin===≠!=?<?<=?>?>=>>>aSet=set('sit')>>>bSet=set('stand')>>>aSet{'i','t','s'}>>>bSet{'a','n','s','t','d'}>>>aSet==bSetFalse>>>aSet<bSetFalse>>>set('and')<bSetTrue4.3.2集合的基本操作集合運(yùn)算符功能&交集|并集-差集^對稱差分>>>aSet=set('sit')>>>bSet=set('stand')>>>aSet&bSet{'t','s'}>>>aSet|bSet{'a
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《嵌入式復(fù)習(xí)課》課件
- 2025年冀教版八年級地理下冊月考試卷
- 《寶潔的銷售管理》課件
- 2025年北師大新版七年級物理上冊階段測試試卷含答案
- 2024年華東師大版六年級語文上冊階段測試試卷
- 2025年滬科版四年級英語下冊階段測試試卷含答案
- 《看圖編故事》指導(dǎo)課件
- 親子游樂場所租賃合同
- 2024年滬教版九年級歷史上冊月考試卷含答案
- 2025年統(tǒng)編版選修4化學(xué)下冊階段測試試卷
- (完整word版)Word信紙(A4橫條直接打印版)模板
- 鋼結(jié)構(gòu)件運(yùn)輸專項(xiàng)方案
- 物業(yè)公司車輛進(jìn)出登記表
- DCS基礎(chǔ)培訓(xùn)課程(和利時)課件
- 員工消防安全教育培訓(xùn)
- HART-375手操器說明書
- 文學(xué)批評與實(shí)踐-四川大學(xué)中國大學(xué)mooc課后章節(jié)答案期末考試題庫2023年
- (52)-12.1服裝的審美形態(tài)11.4
- 力行“五育”并舉融合“文化”育人
- 上海中心大廈介紹
- 管道試壓記錄表
評論
0/150
提交評論