第4章 序列最終版_第1頁
第4章 序列最終版_第2頁
第4章 序列最終版_第3頁
第4章 序列最終版_第4頁
第4章 序列最終版_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第4章序列目錄頁contents4.1序列概述4.2字符串4.3列表4.4元組4.5jieba庫的使用4.1序列概述Python中,根據(jù)容器的存儲特點,操作方式,容器可以分為不同的類型,其中序列就是其中的一種內(nèi)置的容器。序列包括字符串,列表和元組。序列類型的元素間存在順序關(guān)系,各具體類型使用相同的索引體系,即正向索引和反向索引。序列對象是可迭代的1.序列索引(1)正向索引(2)反向索引2.序列切片序列切片操作可以在序列中提取部分元素返回得到一個新序列,其格式如下

圖1序列元素的索引varname[m:n:k]4.2.1字符串概要4.2.2字符串的基本操作4.2.3字符串處理內(nèi)置函數(shù)4.2字符串4.2.4字符串處理方法4.2.1字符串概要字符串是一組不可變且有序的序列,其主要是用來表示文本信息??梢允褂脝我?、雙引號、三引號作為定界符(界限符)對字符串進行定義。定界符必須要成對出現(xiàn),并可以嵌套使用。【例4-1】字符串表示、轉(zhuǎn)義字符>>>print('I'meva.')#定界符為單引號的字符串中含有單引號,出錯SyntaxError:invalidsyntax>>>print("I'meva.")I'meva.>>>print('I\'meva.')#使用轉(zhuǎn)義字符I'meva.4.2.1字符串概要轉(zhuǎn)義字符是指在字符串中的某些特定的符號前加一個反斜杠之后,該字符將被解釋為另外一種含義。如:print('I\'meva.')表4-1Python中常見的轉(zhuǎn)義字符轉(zhuǎn)義字符描述轉(zhuǎn)義字符描述\在行尾的續(xù)行符\t水平制表符\'單引號\a響鈴\"雙引號\b退格(Backspace)\0空\\反斜線\n換行符\0dd八進制數(shù),如\012代表換行\(zhòng)r回車符\xhh十六進制數(shù),如\x0a代表換行4.2.2字符串的基本操作字符串索引與切片應(yīng)用【例4-2】字符串索引>>>print("MynameisEva"[0],"MynameisEva"[-1])Ma>>>print("MynameisEva"[14])#索引越界Traceback(mostrecentcalllast):File"<pyshell#36>",line1,in<module>print("MynameisEva"[14])IndexError:stringindexoutofrange>>>str1="MynameisEva">>>print(str1[1])y>>>print(str1[-14])M4.2.2字符串的基本操作字符串索引與切片應(yīng)用【例4-3】字符串切片>>>sn="0123456789">>>sn'0123456789'>>>sn[2:7]'23456'>>>sn[1:8:2]'1357'>>>sn[:5]'01234'>>>sn[-8:9]'2345678'>>>sn[::-1]'9876543210'>>>sn[-2::-3]'852'4.2.3字符串處理內(nèi)置函數(shù)字符串函數(shù)操作是以字符串作為輸入條件,經(jīng)過處理后返回相應(yīng)的值。Python解釋器提供了常見的字符串處理相關(guān)的內(nèi)置函數(shù),其調(diào)用形式為:<函數(shù)名>(<參數(shù)>)函數(shù)例子值描述lenlen("中國12ab")6返回字符串長度maxmax("IamEva")'v'返回字符串中最大字符minmin("IamEva")'

'返回字符串中最小字符chrchr(20013)'中'返回Unicode編碼對應(yīng)的單字符ordord("a")97返回單字符表示的Unicode編碼octoct(100)'0o144'將整數(shù)轉(zhuǎn)換為對應(yīng)八進制數(shù)字符串hexhex(100)'0x64'將整數(shù)轉(zhuǎn)換為對應(yīng)十六進制字符串binbin(10)'0b1010'將整數(shù)轉(zhuǎn)換為對應(yīng)二進制字符串strstr(100)'100'將其他數(shù)據(jù)類型轉(zhuǎn)換為字符串類型4.2.3字符串處理內(nèi)置函數(shù)Unicode編碼Python3以Unicode字符為計數(shù)基礎(chǔ),中英文字符及標點字符都是1個長度單位。Unicode又稱萬國碼,是計算機科學(xué)領(lǐng)域里的一項業(yè)界標準,包括字符集、編碼方案等,Python字符串中每個字符都使用Unicode編碼表示。>>>ord("A")65>>>chr(65)”A”>>>ord("a")97>>>chr(97)”a”>>>ord("學(xué)")23398>>>chr(0x266b)

'?'4.2.4字符串處理方法字符串方法是對字符串進行處理的一個過程,由方法名稱和用圓括號括起來的參數(shù)列表組成。方法需要結(jié)合特定的對象進行使用。Python中,字符串對象有大量自己特定的方法,可用于查找、檢測、排版、替換等操作。格式:<字符串或字符串變量>.<方法名>([<參數(shù)1,參數(shù)2….>])4.2.4字符串處理方法字符串內(nèi)置方法眾多,根據(jù)功能不同,把常用方法從轉(zhuǎn)換、判斷、填充、查找、連接與分割等幾個方面分類介紹。1.轉(zhuǎn)換方法:方法例子值描述uppers.upper()

'MYNAMEISEVA'全部字符大寫lowers.lower()

'mynameiseva'全部字符小寫swapcases.swapcase()'mYMANEISeVA'字符大小寫互換capitalizes.capitalize()

'Mynameiseva'串首字符大寫,其余小寫titles.title()

'MyNameIsEva'單詞首字母大寫,其余小寫s="MynameisEva"4.2.4字符串處理方法2.判斷方法:方法例子值描述isalnums.isalnum()True所有字符都是字母或數(shù)字組成,則返回True,否則返回Falseisalphas.isalpha()False全是字母,返回True,否則返回Falseisdigits.isdigit()False全是數(shù)字,返回True,否則返回Falseislowers.islower()True如果字符串中包含至少一個區(qū)分大小寫的字符,并且所有這些(區(qū)分大小寫的)字符都是小寫,則返回True,否則返回Falseisuppers.isupper()False如果字符串中包含至少一個區(qū)分大小寫的字符,并且所有這些(區(qū)分大小寫的)字符都是大寫,則返回True,否則返回Falseistitles.istitle()False如果字符串中所有的單詞拼寫首字母是否為大寫,且其他字母為小寫則返回True,否則返回False.isspaces.isspace()False全是空白字符,返回True,否則返回Falseisprintables.isprintable()True全是可打印字符,返回True,否則返回Falses="123abc"4.2.4字符串處理方法3.查找方法(表1):s="123,abc,123,abc"方法例子結(jié)果描述finds.find("123",1,7)s.find("ab")-14范圍內(nèi)查找子串,返回首次出現(xiàn)位置,找不著返回-1rfinds.rfind("23",1,13)s.rfind("ab")912范圍內(nèi)查找子串,返回末次出現(xiàn)位置,找不著返回-1indexs.index("123",1,7)s.index("123")出錯0范圍內(nèi)查找子串,返回首次出現(xiàn)位置,找不著報錯4.2.4字符串處理方法3.查找方法(表2):s="123,abc,123,abc"方法例子結(jié)果描述counts.count(",")s.count("234")30返回子字符串在字符串中出現(xiàn)的次數(shù)replaces.replace("123","456")s.replace("a","4",1)'456,abc,456,abc''123,4bc,123,abc'查找子串并在次數(shù)范圍內(nèi)用指定字符串替代,返回新串startswiths.startswith("12")s.startswith("12",9)TrueFalse如果范圍字符串以指定子串開始,返回Trueendswiths.endswith("3",1,11)s.endswith("23")TrueFalse如果范圍字符串以指定子串結(jié)束,返回True4.2.4字符串處理方法4.格式方法:s="123"方法描述center返回指定長度的居中對齊字符串副本ljust返回指定長度的左對齊字符串副本rjust返回指定長度的右對齊字符串副本zfill返回指定寬度字符串,不足左側(cè)用0補位strip刪除兩邊空白字符或指定字符lstrip刪除左邊空白字符或指定字符rstrip刪除右邊空白字符或指定字符4.2.4字符串處理方法【例4-4】字符格式方法:>>>s="123">>>s.center(5)'123'>>>s.center(10,"*")'**123***'>>>s.center(3)'123'>>>s.rjust(10,"*")'*****123'>>>s.ljust(10,"#")'123#####'>>>s.zfill(10)'00000123'>>>s.strip()'123'>>>s.lstrip()'123'>>>s.rstrip()'123'>>>s="123123">>>s.strip()'123123'>>>s.strip("13")#去掉字符串外側(cè)指定字符,包括空格、1、3'2312'4.2.4字符串處理方法5.連接與分割方法方法格式描述joinstr.join(iterable)將列表的多個字符串連接,并在相鄰兩個字符串之間插入指定字符.splitstr.split(s="",num=string.count(str))s為分隔符,默認為所有空字符,num表示分隔次數(shù)。以指定字符為分隔符,分隔成多個字符串,返回包含分割結(jié)果的列表【例4-5】字符連接與分割方法>>>"#".join(["123","abc"])'123#abc'>>>"123abc,abc123".split(",")['123abc','abc123']>>>"123abc,abc123".split()['123','abc,abc','123']>>>"123abc\nabc\t123".split()['123','abc','abc','123']4.2.5字符串格式化輸出format方法>>>"my{}is{}".format("name","eva")format("name","eva")現(xiàn)代計算機之父格式:<模板字符串>.format(<參數(shù)1,參數(shù)2……>)format()方法可以有一個或多個類型不同的對象參數(shù)。format()方法執(zhí)行時,首先進行對象參數(shù)與模板字段項的匹配,然后將每個對象參數(shù),按照所匹配的模板字段指定格式轉(zhuǎn)換為字符串,并替換所匹配的模板,返回一個被替換后的字符串。4.2.5字符串格式化輸出(1){}—位置匹配,不帶序號,按順序填充>>>print("nameis{},idis{}".format("王小瞳","190101"))nameis王小瞳,idis190101(2)

{1},{2}—序號匹配,可調(diào)換順序>>>print("nameis{0},idis{1}".format("王小瞳","190101"))nameis王小瞳,idis190101>>>print("nameis{1},idis{0},{1}是計算機專業(yè)的學(xué)生".format("190101","王小瞳"))nameis王小瞳,idis190101,王小瞳是計算機專業(yè)的學(xué)生format方法4.2.5字符串格式化輸出(3){name},{id}—名稱匹配,帶關(guān)鍵字填充>>>print("nameis{name},idis{id}".format(name="王小瞳",id="190101"))nameis王小瞳,idis190101(4){0[0]},{0[1]}—索引下標匹配>>>print("nameis{0[0]},idis{0[1]}".format(["王小瞳","190101"]))nameis王小瞳,idis190101format方法4.2.5字符串格式化輸出使用format方法時,在{}內(nèi)除了包含參數(shù)或參數(shù)序號外,還可以包含格式控制信息,用來控制參數(shù)顯示時的格式,二者中間用冒號隔開。格式:{[<參數(shù)>|<參數(shù)序號>]:<格式控制標記>}4.2.5字符串格式化輸出格式:{[<參數(shù)>|<參數(shù)序號>]:<格式控制標記>}:<填充><對齊><寬度><,><精度><類型>引導(dǎo)符號用于填充的單個字符,默認為空格<左對齊>右對齊^居中對齊設(shè)置輸出寬度數(shù)字的千位分隔符,適用于整數(shù)和浮點數(shù)浮點數(shù)小數(shù)部分的精度或字符串的最大輸出長度整數(shù)類型b.c.d.e.x.X浮點數(shù)類型e.E.f.%4.2.5字符串格式化輸出【例4-7】浮點數(shù)format格式化方法>>>"{:.2f}".format(12345.6789)'12345.68'>>>"{:,.2f}".format(12345.6789)'12,345.68'>>>"{:^20,.2f}".format(12345.6789)'12,345.68'>>>"{:*^20,.2f}".format(12345.6789)'*****12,345.68******'>>>"{:+.3f}".format(12345.6789)#+字符符號,必須輸出符號'+12345.679'>>>"{:+.3f}".format(-12345.6789)#+字符符號,必須輸出符號'-12345.679'4.2.5字符串格式化輸出【例4-7】浮點數(shù)format格式化方法>>>"{:+20.3f}".format(-12345.6789)#+字符符號,必須輸出符號'-12345.679'>>>"{:=20.3f}".format(-12345.6789)#=表示在符號和數(shù)字間填充'-12345.679'>>>"{:.2%}".format(12345.6789)'1234567.89%'>>>"{:#>20.2e}".format(12345.6789)'############1.23e+04'4.2.5字符串格式化輸出【例4-8】format方法數(shù)制轉(zhuǎn)換格式化>>>"{0:b}{0:d}{0:o}{0:x}{0:X}".format(12345)'11000000111001123453007130393039'>>>"{0:#b}{0:#d}{0:#o}{0:#x}{0:#X}".format(12345)'0b11000000111001123450o300710x30390X3039'4.2.5字符串格式化輸出【例4-9】下面輸出的是前三名同學(xué)的成績排名123456#E4-9.pyprint("{0:*^30}".format("scoreranking"))print("{0:<5}{1:^20}{2:>5}".format("id","name","score"))print("{0:<5}{1:^20}{2:>5}".format(1,"eva",100))print("{0:<5}{1:^20}{2:>5}".format(2,"coco",98))print("{0:<5}{1:^20}{2:>5}".format(3,"fanny",95))程序的運行結(jié)果為:4.3.1列表的概念4.3.2列表的基本操作4.3列表4.3.1列表的概念列表(list)是包含0個或多個對象引用的有序序列,并且是Python中內(nèi)置的可變序列,它提供了靈活多變的數(shù)據(jù)存儲方案。>>>favourite_fruits=["apple","banana","pear","peach"]>>>luck_numbers=[7,3,12,36,[9,11]]>>>friends=["王芳",18,"李想",17,"張小若",19]>>>['p','y','t','h','o','n']4.3.2列表的基本操作1.創(chuàng)建列表>>>list1=[]#創(chuàng)建空列表>>>list2=[98,80,75,90,65,82]#創(chuàng)建數(shù)值元素的列表>>>list3=[“hello”,”world”,”!”]#創(chuàng)建包含字符串元素的列表>>>list4=[xforxinrange(5)]#列表解析創(chuàng)建列表[0,1,2,3,4]>>>list5=list(range(10,20,2))#轉(zhuǎn)換后的列表為[10,12,14,16,18]>>>list6=list(“Python”)#轉(zhuǎn)換后的列表為['p','y','t','h','o','n']

>>>list7=list(('h','e','l','l','o'))#轉(zhuǎn)換后的列表為['h','e','l','l','o']4.3.2列表的基本操作2.訪問列表元素與列表切片>>>animals=["cat","dog","monkey","horse","spider","frog"]>>>animals[0]'cat'>>>animals[len(animals)-1]'frog'4.3.2列表的基本操作2.訪問列表元素與列表切片>>>animals=["cat","dog","monkey","horse","spider","frog"]>>>animals[3:]

#返回列表中索引值為3到最后一個元素的所有元素組成的列表['horse','spider','frog']>>>animals[1:3]#返回列表中索引值為1到索引值為3(不包含)的元素組成的列表['dog','monkey']>>>animals[:]#返回原列表的副本['cat','dog','monkey','horse','spider','frog']4.3.2列表的基本操作2.訪問列表元素與列表切片【例4-10】編寫程序?qū)崿F(xiàn)用列表定義一周每日的學(xué)習(xí)計劃,根據(jù)星期輸出當日的學(xué)習(xí)計劃分析:(1)定義一個包含7個元素的列表,每個元素的內(nèi)容為每日的學(xué)習(xí)計劃(2)獲取當前的星期,將當前的星期作為列表的索引,輸出該日的學(xué)習(xí)計劃,需要導(dǎo)入日期時間類datetime4.3.2列表的基本操作2.訪問列表元素與列表切片【例4-10】編寫程序?qū)崿F(xiàn)用列表定義一周每日的學(xué)習(xí)計劃,根據(jù)星期輸出當日的學(xué)習(xí)計劃#E4-10.pyimportdatetime#導(dǎo)入日期時間類#定義一個列表plan=["今天星期一:\n讀《史記》","今天星期二:\n練口語","今天星期三:\n寫讀書筆記","今天星期四:\n學(xué)慕課","今天星期五:\n學(xué)Python","今天星期六:\n學(xué)打羽毛球","今天星期日:\n品《三國》"]day=datetime.datetime.now().weekday()#獲取當前星期print(plan[day])#輸出當前星期的學(xué)習(xí)計劃程序的運行結(jié)果為:今天星期三:寫讀書筆記4.3.2列表的基本操作3.遍歷列表在實際應(yīng)用中,經(jīng)常要遍歷列表中所有元素(1).直接遍歷列表元素for<元素>in<列表>:

print(<元素>)4.3.2列表的基本操作3.遍歷列表【例4-11】定義一個保存世界人口數(shù)量前六位國家的列表,然后通過for循環(huán)遍歷該列表,并輸出各個國家的名稱>>>country=['中國','印度','美國','印度尼西亞','巴西','巴基斯坦']>>>foritemincountry:print(item)中國印度美國印度尼西亞巴西巴基斯坦4.3.2列表的基本操作3.遍歷列表在實際應(yīng)用中,經(jīng)常要遍歷列表中所有元素(2).for循環(huán)和enumerate()函數(shù)實現(xiàn)遍歷列表for<索引>in<列表長度>:print(<列表[索引]>)4.3.2列表的基本操作3.遍歷列表【例4-12】對于例4-11創(chuàng)建的列表,通過for循環(huán)和enumerate()函數(shù)遍歷該列表,并輸出排名和對應(yīng)的國家名稱>>>country=['中國','印度','美國','印度尼西亞','巴西','巴基斯坦']>>>forindex,iteminenumerate(country):print(index+1,item)1中國2印度3美國4印度尼西亞5巴西6巴基斯坦4.3.2列表的基本操作4.向列表追加、插入、修改和刪除元素(1).向列表增加元素list1.append(x)在列表list1末尾增加一個元素x>>>list1=[1,2,3]>>>list1.append(4)>>>list1[1,2,3,4]

list1.extend(list2)在列表list1末尾增加列表list2中的元素>>>list1.extend([5,6])>>>list1[1,2,3,4,5,6]

list1.insert(i,x)在列表list1索引為i的位置增加元素x>>>list1.insert(0,0)>>>list1[0,1,2,3,4,5,6]4.3.2列表的基本操作4.向列表追加、插入、修改和刪除元素(1).向列表增加元素>>>stu1,stu2=["Mary",18],["Rose",20]>>>stu3,stu4=["Jack",19],["Tom",20]>>>stu1.append(stu2)>>>stu1['Mary',18,['Rose',10]]>>>stu1.extend(stu3)>>>stu1['Mary’,18,['Rose',10],'Jack',19]>>>stu1.insert(0,stu4)>>>stu1[['Tom',20],'Mary',18,['Rose',10],'Jack',19]4.3.2列表的基本操作4.向列表追加、插入、修改和刪除元素(2).列表的刪除(del、remove、pop、clear)list1=[0,1,2,3,4,5,6,7,8,9]dellist1[i] 刪除列表list1的索引為i位置的元素>>>dellist1[0]>>>list1[1,2,3,4,5,6,7,8,9]dellist1[i:j:k] 刪除列表list1第i到第j(不包括j)索引位置以K為步長的元素>>>dellist1[0:8:2]>>>list1[2,4,6,8,9]list1.remove(x)刪除列表list1中出現(xiàn)的第一個x元素>>>list1.remove(4)>>>list1[2,6,8,9]4.3.2列表的基本操作4.向列表追加、插入、修改和刪除元素(2).列表的刪除list1.pop(i)返回列表list1中索引為i位置的元素并刪除該元素list1.pop()返回列表list1中最后一個元素并刪除該元素>>>list1.pop(2)8>>>list1[2,6,9]>>>list1.pop()9>>>list1[2,6]list1.clear() 刪除列表list1中的所有元素>>>list1.clear()>>>list1[]4.3.2列表的基本操作4.向列表追加、插入、修改和刪除元素(3).列表的排序list1.reverse()將列表list1中的元素反轉(zhuǎn)>>>list1=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]>>>list1.reverse()>>>list1['Sunday','Saturday','Friday','Thursday','Wednesday','Tuesday','Monday']4.3.2列表的基本操作4.向列表追加、插入、修改和刪除元素(3).列表的排序list1.sort(key=None,reverse=False)若省略參數(shù),對列表list1中的元素按升序排序;若參數(shù)reverse=True,則按降序排序;key指定排序規(guī)則>>>list1.sort()>>>list1['Friday','Monday','Saturday','Sunday','Thursday','Tuesday','Wednesday']>>>list1.sort(reverse=True)>>>list1['Wednesday','Tuesday','Thursday','Sunday','Saturday','Monday','Friday']>>>list1.sort(key=len)>>>list1['Friday','Monday','Sunday','Tuesday','Saturday','Thursday','Wednesday']4.3.2列表的基本操作4.向列表追加、插入、修改和刪除元素(4).列表的復(fù)制list1.copy()復(fù)制生成一個包括list1中所有元素的新列表>>>list1=[1,2,3,4]>>>list3=list1>>>list2=list1.copy()>>>list1[0]="a">>>list1['a',2,3,4]>>>id(list1)53290824>>>list2[1,2,3,4]>>>list3['a',2,3,4]4.3.2列表的基本操作4.向列表追加、插入、修改和刪除元素【例4-14】對于例4-11創(chuàng)建的列表,在列表末尾增加尼日利亞、孟加拉國、俄羅斯和墨西哥,使其顯示世界人口排名前十的國家。然后將墨西哥從列表中刪除,并將列表的國家按人口數(shù)量的升序顯示>>>country=['中國','印度','美國','印度尼西亞','巴西','巴基斯坦']>>>country.extend(['尼日利亞','孟加拉國','俄羅斯','墨西哥'])>>>country.pop()>>>country.reverse()>>>print(country)['俄羅斯','孟加拉國','尼日利亞','巴基斯坦','巴西','印度尼西亞','美國','印度','中國']4.3.2列表的基本操作5.對列表進行統(tǒng)計和計算list1=[2,4,6,8,10,2](1)list1.count(x)返回元素x在列表list1中的出現(xiàn)次數(shù)>>>list1.count(2)2(2)list1.index(x) 返回元素x在列表list1中首次出現(xiàn)的索引位置>>>list1.index(2)0(3)sum(list)

統(tǒng)計數(shù)值列表list1中各元素的和>>>sum(list1)324.3.2列表的基本操作5.對列表進行統(tǒng)計和計算list1=[2,4,6,8,10,2](4)len(list1) 返回列表list1的長度>>>len(list1)6(5)max(list1) 返回列表list1中元素的最大值>>>max(list1)10(6)min(list1) 返回列表list1中元素的最小值>>>min(list1)24.3.2列表的基本操作5.對列表進行統(tǒng)計和計算【例4-15】新建程序文件E4-15.py,定義一個保存10名學(xué)生計算機課成績的列表,統(tǒng)計出10名學(xué)生的平均成績,并統(tǒng)計得100分的人數(shù)。123456#E4-15.pysc=[90,78,100,92,86,100,79,83,62,93]print("平均成績?yōu)椋?)print(sum(sc)/len(sc))print("得100分的人數(shù)為:")print(sc.count(100))平均成績?yōu)?86.3得100分的人數(shù)為:2程序的運行結(jié)果:4.4.1元組的概念4.4.2元組的基本操作4.4元組4.4.3列表與元組的轉(zhuǎn)換4.4.4元組與列表的區(qū)別4.4.1元組的概念元組(tuple)是Python中另一個重要的序列結(jié)構(gòu),它是包含0個或多個元素的不可變序列類型。在形式上,元組的所有元素通常放在一對“()”中,兩個相鄰元素間使用“,”分隔。例如:tuple1=(10,20,30)或tuple1=10,20,304.4.2元組的基本操作與列表相似,元組的基本操作包括創(chuàng)建元組,訪問元組元素,元組切片操作等。此外,也可以使用for循環(huán)遍歷元組4.4.2元組的基本操作1.創(chuàng)建元組>>>num=(2,6,8,12,35,68,96)>>>poets=('李白','杜甫','白居易','王維','蘇軾')>>>tup=(("屠呦呦",85),["諾貝爾獎","青蒿素"])>>>name=("Mary",)>>>t1=tuple(range(1,10,2))>>>t1(1,3,5,7,9)>>>t2=tuple(“hello”)>>>t2('h','e','l','l','o')4.4.2元組的基本操作2.元組的訪問>>>poets=('李白','杜甫','白居易','王維','蘇軾')>>>poets[1]="孟浩然"TypeError:'tuple'objectdoesnotsupportitemassignment

>>>poets[0]'李白'>>>poets[1:3]('杜甫','白居易')>>>tup2=num+name>>>tup2(2,6,8,12,35,68,96,"Mary")#該方法同樣適用于列表4.4.2元組的基本操作3.刪除元組>>>deltup2>>>tup2Traceback(mostrecentcalllast):File"<pyshell#8>",line1,in<module>tup2NameError:name'tup2'isnotdefined4.4.2元組的基本操作4.元組的其它操作>>>tup3=(10,20,30,40,50)>>>sum(tup3)150>>>max(tup3)50>>>min(tup3)10>>>len(tup3)5>>>20intup3True>>>60notintup3True>>>tup3.index(30)2>>>tup3.count(10)14.4.3列表與元組的轉(zhuǎn)換Python中,列表與元組可以互相轉(zhuǎn)換。內(nèi)置函數(shù)tuple(<列表>)可以將一個列表作為參數(shù)轉(zhuǎn)換成包含同樣元素的元組.同樣,list(<元組>)可以將一個元組作為參數(shù)轉(zhuǎn)換成包含同樣元素的列表。>>>list1=[10,20,30,40,50]>>>tuple(list1)(10,20,30,40,50)>>>type(list1)#查看調(diào)用函數(shù)tuple()后list1的類型<class'list'>#list1類型是列表并沒有改變

>>>tup1=("Hello","World","!")>>>list(tup1)['Hello','World','!']>>>type(tup1)#查看調(diào)用函數(shù)list()后tup1的類型<class'tuple'>#tup1類型是元組并沒有改變

4.4.4元組與列表的區(qū)別(1)列表屬于可變序列,它的元素可以隨時修改或者刪除;元組屬于不可變序列,其中的元素不可以修改。(2)列表可以使用append()、extend()、insert()、remove()和pop()等方法實現(xiàn)添加和修改列表元素,而元組沒有這幾個方法,所以不能向元組中添加、修改或刪除元素。(3)元組比列表的訪問和處理速度快,所以當只需要對其中的元素進行訪問,而不進行任何修改時,建議使用元組。(4)列表不能作為字典的鍵,而元組則可以。元組與列表的區(qū)別4.5.1jieba庫簡介4.5.2jieba庫分詞函數(shù)4.5jieba庫的使用4.5.1jieba庫簡介在自然語言處理技術(shù)中,中文分詞是其他中文信息處理的基礎(chǔ),比如搜索引擎、機器翻譯(MT)、語音合成、自動分類、自動摘要、自動校對等等,都需要用到分詞。jieba是Python中一個重要的第三方中文分詞庫,具有分詞、添加用戶詞典、提取關(guān)鍵詞和詞性標注等功能4.5.1jieba庫簡介jieba庫的分詞原理是利用一個中文詞庫,將待分詞的內(nèi)容與分詞詞庫進行比對,通過圖結(jié)構(gòu)和動態(tài)規(guī)劃方法找到最大概率的詞組。它支持3種分詞模式:(1)精確模式:試圖將句子最精確地切開,適合文本分析。(2)全模式:把句子中所有可以成詞的詞語都掃描出來,速度快,但是不能解決歧義問題。(3)搜索引擎模式:在精確模式的基礎(chǔ)上,對長詞再次切分,提高召回率,適用于搜索引擎分詞。4.5.2jieba庫分詞函數(shù)jieba庫主要提供分詞功能,可以輔助自定義分詞詞典。jieba庫中包含的主要函數(shù)如表4-11所示函數(shù)說明jieba.cut(s)精確模式,返回一個可迭代的數(shù)據(jù)類型,可以通過for循環(huán)來取里面的每一個詞jieba.cut(s,cut_all=True)全模式,輸出文本s中所有可能的單詞,返回一個可迭代的數(shù)據(jù)類型jieba.cut_for_search(s)搜索引擎模式,適合搜索引擎建立索引的分詞結(jié)果,返回一個可迭代的數(shù)據(jù)類型jieba.lcut(s)精確模式,返回一個列表類型jieba.lcut(s,cut_all=True)全模式,返回一個列表類型jieba.lcut_for_search(s)搜索引擎模式,返回一個列表類型【例4-17】jieba庫的分詞基本應(yīng)用>>>importjieba>>>str2="AlphaGo是第一個戰(zhàn)勝圍棋世界冠軍的人工智能機器人">>>ji

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論