版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
定義數(shù)據(jù)結(jié)構(gòu)存儲數(shù)據(jù)
定義字符串目錄Content1定義列表2定義元組3定義字典4定義集合5項(xiàng)目導(dǎo)言零
在使用Python編寫一個(gè)程序完成指定任務(wù)時(shí),使用基礎(chǔ)的語法、數(shù)據(jù)類型和變量定義是遠(yuǎn)不能滿足需求的,當(dāng)遇到需要保存一組數(shù)據(jù)時(shí),根據(jù)數(shù)據(jù)量創(chuàng)建與數(shù)據(jù)量一致的變量顯示是不現(xiàn)實(shí)的,不但耗時(shí)費(fèi)力,還會使程序運(yùn)行占用大量內(nèi)存,影響程序運(yùn)行速度,在這種情況下,可通過使用Python中的字符串、列表、元組、字典和集合去解決,本項(xiàng)目主要通過對數(shù)據(jù)結(jié)構(gòu)存儲數(shù)據(jù)的知識進(jìn)行講解,解決存儲一組數(shù)據(jù)的問題。學(xué)習(xí)目標(biāo)零知識目標(biāo)了解Python中的數(shù)據(jù)機(jī)構(gòu);熟悉數(shù)據(jù)結(jié)構(gòu)存儲的數(shù)據(jù)類型;掌握各數(shù)據(jù)結(jié)構(gòu)創(chuàng)建和操作方法;掌握使用個(gè)數(shù)據(jù)結(jié)構(gòu)存儲數(shù)據(jù)的應(yīng)用場景。能力目標(biāo)具備根據(jù)不同場景選擇數(shù)據(jù)結(jié)構(gòu)的能力;具備創(chuàng)建和管理數(shù)據(jù)結(jié)構(gòu)的能力;具備使用數(shù)據(jù)結(jié)構(gòu)存儲數(shù)據(jù)的能力。素養(yǎng)目標(biāo)具有良好的人際溝通能和交往能力;具有較強(qiáng)的適應(yīng)能力;具有吃苦耐勞的精神;具備良好的心里素質(zhì)。任務(wù)2-1:定義字符串壹1字符串內(nèi)置方法
在Python中,字符串是一種常用的數(shù)據(jù)類型,可通過多種創(chuàng)建字符串的方式,包括單引號、雙引號或三引號方式,其中,單引號和雙引號只能對單行字符串進(jìn)行定義,而三引號可以創(chuàng)建多行字符串,語法格式如下所示。s1='HelloWorld!'s2="Pythoniseasytolearn."s3='''Thisisamultilinestring.Youcanusethreesinglequotesorthreedoublequotestocreateit.'''任務(wù)2-1:定義字符串壹
在字符串定義后,即可通過Python提供的多種字符串內(nèi)置方法對字符串進(jìn)行操作,包括字符串查找、替換、分割等,常用字符串內(nèi)置方法見表所示。方法描述find()查找字符串count()統(tǒng)計(jì)字符串replace()替換字符串split()分割字符串join()/+連接字符串strip()去除字符串指定字符isalpha()判斷字符串是否只包含字母字符isdigit()判斷字符串是否只包含數(shù)字字符isalnum()判斷字符串是否只包含字母和數(shù)字字符lower()將字符串中的所有字母轉(zhuǎn)換為小寫字母upper()將字符串中的所有字母轉(zhuǎn)換為大寫字母capitalize()將字符串第一個(gè)字符轉(zhuǎn)換為大寫字母,其余字符轉(zhuǎn)換為小寫字母title()將字符串中每個(gè)單詞的首字母都轉(zhuǎn)換為大寫字母任務(wù)2-1:定義字符串壹(1)字符串查找在Python中,使用find()方法可以在字符串中從開頭到結(jié)尾查找指定子字符串的位置,如果存在,則返回子字符串第一次出現(xiàn)的索引位置(下標(biāo)),如果沒有找到則返回-1,語法格式如下所示。str.find(sub[,start[,end]])參數(shù)說明見表所示。參數(shù)描述str要搜索的字符串sub要查找的子字符串start查找子字符串的起始位置end查找子字符串的結(jié)束位置任務(wù)2-1:定義字符串壹例如,使用find()方法在“Hello,World!”中查找字符串“o”、“World”、“Python”等,代碼如下。s='Hello,World!'print(s.find('o'))#輸出:4print(s.find('World'))#輸出:7print(s.find('Python'))#輸出:-1print(s.find('o',5,10))#輸出:7(2)字符串統(tǒng)計(jì)字符串統(tǒng)計(jì)指在字符串中區(qū)分大小寫(大寫字母和小寫字母被認(rèn)為是不同的字符)統(tǒng)計(jì)指定子字符串出現(xiàn)的次數(shù)。Python中,可使用count()方法實(shí)現(xiàn),接受參數(shù)與find()方法基本相同,語法格式如下所示。str.count(sub[,start[,end]])任務(wù)2-1:定義字符串壹例如,使用count()方法統(tǒng)計(jì)字母o在字符串“Hello,World!”中出現(xiàn)的次數(shù),代碼如下。s='Hello,World!'print(s.count('o'))#輸出:2(3)字符串替換Python提供了一個(gè)replace()方法,可以將字符串中某個(gè)子字符串替換成另一個(gè)字符串,并返回替換后的完整字符串,而原始字符串并沒有被修改,語法格式如下所示。str.replace(old,new[,count])參數(shù)說明見表所示。參數(shù)描述str要搜索的字符串old要被替換的子字符串new替換后的新字符串count最多替換的次數(shù),如果省略,則會將所有的舊字符串都替換為新字符串任務(wù)2-1:定義字符串壹例如,使用replace()方法將字符串“Hello,World!”中的子字符串“World”替換為“Python”,代碼如下。s='Hello,World!'new_s=s.replace('World','Python')print(new_s)#輸出:Hello,Python!任務(wù)2-1:定義字符串壹(4)字符串分割str.split([sep[,maxsplit]])Python字符串類型中提供了一個(gè)split()方法用于分割字符串,會將一個(gè)字符串按指定分隔符分割成多個(gè)子串,并以列表的形式返回所有子字符串,語法格式如下所示。參數(shù)說明見表所示。參數(shù)描述str要分割的字符串sep分隔符,默認(rèn)是空格字符maxsplit最多分割的次數(shù),默認(rèn)是-1,表示分割所有子字符串任務(wù)2-1:定義字符串壹例如,使用split()方法指定分隔符為逗號、字母o實(shí)現(xiàn)字符串“Hello,World!”的分割操作,代碼如下。s='Hello,World!'#無分割符,返回原始字符串的列表形式print(s.split())#輸出:['Hello,World!']#分隔符為逗號print(s.split(','))#輸出:['Hello','World!']#分隔符為字母oprint(s.split('o'))#輸出:['Hell',',W','rld!']#分隔符為字母o,并且限定最大分割次數(shù)為1print(s.split('o',1))#輸出:['Hell',',World!']任務(wù)2-1:定義字符串壹(5)字符串連接在Python,字符串的連接操作有兩種方式,分別是使用加號(+)和join()方法。其中,使用加號(+)方式可以將兩個(gè)或多個(gè)字符串連接起來成為一個(gè)新的字符串。例如,使用加號(+)將字符串“Hello”和“World”連接起來,代碼如下。a='Hello'b='World'c=a+''+bprint(c)#輸出:'HelloWorld'任務(wù)2-1:定義字符串壹需要注意的是,使用加號(+)連接字符串對于少量的字符串無傷大雅,但對于大量的字符串連接操作,會導(dǎo)致大量的臨時(shí)變量和內(nèi)存開銷。因此,在需要進(jìn)行大量字符串連接操作時(shí),通常使用join()方法將多個(gè)字符串連接成一個(gè)新的字符串,并返回連接后的字符串,語法格式如下所示。sep.join(iterable)參數(shù)說明見表所示。參數(shù)描述sep分隔符,默認(rèn)是空格字符iterable表示要連接的序列或者可迭代對象,如列表、元組等任務(wù)2-1:定義字符串壹例如,使用join()方法將字符串“apple”、“banana”和“orange”以逗號和空格(“,”)為分隔符連接起來,代碼如下。lst=['apple','banana','orange']s=','.join(lst)print(s)#輸出:'apple,banana,orange'需要注意的是,join()方法只能用于字符串之間的連接,如果需要將其他類型的數(shù)據(jù)轉(zhuǎn)換成字符串并連接,需要先使用相應(yīng)的轉(zhuǎn)換函數(shù)(例如str()函數(shù))將其轉(zhuǎn)換成字符串類型。任務(wù)2-1:定義字符串壹2字符串操作符
在Python中,字符串操作符是一種用于對字符串進(jìn)行操作的特殊語法,如加號(+)可以連接兩個(gè)字符串,返回一個(gè)新的字符串,除此之外,Python還支持其他多種操作符,見表所示。操作符描述*將一個(gè)字符串重復(fù)多次,返回一個(gè)新的字符串[]通過下標(biāo)獲取字符串中指定位置的字符或者子串,返回一個(gè)單個(gè)字符或子串的新字符串[:]切片操作符,用于提取子串,返回一個(gè)新的子串字符串in判斷一個(gè)字符串是否包含另一個(gè)子串,返回True或Falsenotin判斷一個(gè)字符串是否不包含另一個(gè)子串,返回True或False任務(wù)2-1:定義字符串壹2字符串操作符
在Python中,字符串操作符是一種用于對字符串進(jìn)行操作的特殊語法,如加號(+)可以連接兩個(gè)字符串,返回一個(gè)新的字符串,除此之外,Python還支持其他多種操作符,見表所示。操作符描述*將一個(gè)字符串重復(fù)多次,返回一個(gè)新的字符串[]通過下標(biāo)獲取字符串中指定位置的字符或者子串,返回一個(gè)單個(gè)字符或子串的新字符串[:]切片操作符,用于提取子串,返回一個(gè)新的子串字符串in判斷一個(gè)字符串是否包含另一個(gè)子串,返回True或Falsenotin判斷一個(gè)字符串是否不包含另一個(gè)子串,返回True或False任務(wù)2-1:定義字符串壹例如,使用字符串操作符來連接和重復(fù)字符串,代碼如下。str1="Hello"str2="World"#使用+連接兩個(gè)字符串result1=str1+""+str2print(result1)#輸出:"HelloWorld"#使用*重復(fù)字符串result2=str1*3print(result2)#輸出:"HelloHelloHello"任務(wù)2-1:定義字符串壹3字符串操作符
Python字符串格式化是一種將值插入到字符串中的方法。字符串格式化可以將各種數(shù)據(jù)類型插入到字符串中,例如數(shù)字、字符串、列表等。Python中支持多種字符串格式化的方式,如使用百分號(%)進(jìn)行字符串格式化、使用format()方法進(jìn)行字符串格式化、使用f-string進(jìn)行字符串格式化等。(1)使用百分號(%)進(jìn)行字符串格式化該方式常被稱為“舊式字符串格式化”,它使用百分號(%)作為占位符,將要插入的變量放在字符串中的占位符位置,語法格式如下所示。print("格式字符串"%值)任務(wù)2-1:定義字符串壹其中,格式字符串包含一個(gè)或多個(gè)占位符,代表需要插入值的位置,常用占位符見表所示。占位符描述%s字符串(無論是字符串對象還是其他類型的對象)%d有符號整數(shù)%f浮點(diǎn)數(shù)%e科學(xué)計(jì)數(shù)法表示的浮點(diǎn)數(shù)%x十六進(jìn)制整數(shù)(字母小寫)%X十六進(jìn)制整數(shù)(字母大寫)%%輸出%字符本身%.Mf格式化為浮點(diǎn)數(shù),保留M位小數(shù)%.Me或%.ME格式化為科學(xué)計(jì)數(shù)法(e表示小寫字母,E表示大寫字母),保留M位小數(shù)%.Nm格式化為整數(shù),至少占N位,不足部分使用0填充任務(wù)2-1:定義字符串壹例如,使用百分號(%)將整數(shù)和浮點(diǎn)數(shù)插入到字符串中,代碼如下。my_int=42my_float=3.14result="Theintvalueis%d,thefloatvalueis%.2f"%(my_int,my_float)print(result)#輸出:'Theintvalueis42,thefloatvalueis3.14'(2)使用format()方法進(jìn)行字符串格式化Python中的format()方法用于格式化字符串,它使用大括號{}作為占位符來指示將要插入值的位置,然后在format()方法中傳遞相應(yīng)的參數(shù)來填充這些占位符,語法格式如下所示。'{}{}'.format(arg1,arg2)任務(wù)2-1:定義字符串壹其中,{}表示要插入到字符串中的參數(shù)的位置,arg1和arg2表示要插入的參數(shù),可以是任意類型的變量,包括字符串、數(shù)字、布爾類型等。需要注意的是,arg1和arg2的個(gè)數(shù)可以是任意多個(gè),可以按照順序依次插入到字符串中。除了使用上述的方法按照順序進(jìn)行插入,也可以通過指定位置進(jìn)行插入,語法格式如下所示。'{0}{1},{2}'.format(arg1,arg2,arg3)其中,{0}表示要插入的第一個(gè)參數(shù),{1}表示要插入的第二個(gè)參數(shù),{2}表示要插入的第三個(gè)參數(shù),對應(yīng)的參數(shù)是arg1、arg2和arg3。除了按照位置進(jìn)行插入,也可以按照關(guān)鍵字進(jìn)行插入,語法格式如下所示。'{key1}{key2}'.format(key1=value1,key2=value2)任務(wù)2-1:定義字符串壹其中,{key1}表示要插入的關(guān)鍵字參數(shù)key1,{key2}表示要插入的關(guān)鍵字參數(shù)key2。并且,在進(jìn)行格式化輸出時(shí),還可以使用一些常用的類型選項(xiàng),例如{:d}表示要將參數(shù)作為整數(shù)進(jìn)行格式化,{:f}表示要將參數(shù)作為浮點(diǎn)數(shù)進(jìn)行格式化,需要注意的是,這些類型選項(xiàng)可以和其他修飾符一起使用,常用格式化輸出類型選項(xiàng)見表所示。選項(xiàng)描述{}默認(rèn)類型,表示自動根據(jù)變量類型進(jìn)行轉(zhuǎn)換{:<N}左對齊,并且占N個(gè)字符的位置{:>N}右對齊,并且占N個(gè)字符的位置{:^N}居中對齊,并且占N個(gè)字符的位置{:.Mf}格式化為浮點(diǎn)數(shù),保留M位小數(shù){:.Me}或{:.ME}格式化為科學(xué)計(jì)數(shù)法(e表示小寫字母,E表示大寫字母),保留M位小數(shù){:.Nm}格式化為整數(shù),至少占N位,不足部分使用0填充(例如{:.2d}表示至少占2位的整數(shù),不足部分使用0填充){:X}和{:x}將整數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)(大寫或小寫)任務(wù)2-1:定義字符串壹除了上述類型選項(xiàng)外,還有一些修飾符可以用來指定輸出的格式,常用輸出格式修飾符見表所示。修飾符描述:是類型選項(xiàng)的分隔符,將類型選項(xiàng)和修飾符分開,在整數(shù)中使用逗號作為千位分隔符(例如{:,d}表示將整數(shù)格式化為千位分隔數(shù)字)_在浮點(diǎn)數(shù)中使用下劃線作為千位分隔符(例如{:_f}表示使用下劃線作為千位分隔符顯示浮點(diǎn)數(shù))任務(wù)2-1:定義字符串壹例如,使用format()將整數(shù)和浮點(diǎn)數(shù)插入到字符串中,代碼如下。my_int=42my_float=3.14result="Theintvalueis{},thefloatvalueis{:.2f}".format(my_int,my_float)print(result)#輸出:'Theintvalueis42,thefloatvalueis3.14'(3)使用f-string進(jìn)行字符串格式化相比于前兩種字符串格式化方法,使用f-string進(jìn)行字符串格式化的方式僅適用于Python3.6及以上版本,是一種非常方便和直觀的字符串格式化方式,使用f-string標(biāo)記(在字符串前添加字母f)以及大括號{}表示占位符。例如,使用f-string將整數(shù)和浮點(diǎn)數(shù)插入到字符串中,代碼如下。my_int=42my_float=3.14result=f"Theintvalueis{my_int},thefloatvalueis{my_float:.2f}"print(result)#輸出:'Theintvalueis42,thefloatvalueis3.14'任務(wù)2-1:定義字符串壹4字符串編碼轉(zhuǎn)換
在Python中,除了使用注釋對編碼格式進(jìn)行指定外,還可以使用內(nèi)置的encode()和decode()方法來進(jìn)行Python中字符串編碼的轉(zhuǎn)換。(1)encode()encode()是Python中用于將字符串編碼為字節(jié)序列的方法,能夠?qū)nicode字符串轉(zhuǎn)換為指定編碼格式(如UTF-8)的字節(jié)序列,以便在網(wǎng)絡(luò)傳輸或文件存儲等場景下使用,語法格式如下所示。str.encode(encoding='UTF-8',errors='strict')參數(shù)說明見表所示。參數(shù)描述encoding可選,指定要使用的字符編碼,默認(rèn)值為“UTF-8”errors可選,指定編碼錯(cuò)誤時(shí)的處理方式,默認(rèn)值為“strict”,表示拋出一個(gè)UnicodeError異常,其他可選值如下:ignore:在忽略無法編碼的字符時(shí)不拋出異常replace:在無法編碼的字符處使用“?”替代原字符xmlcharrefreplace:使用XML實(shí)體替換無法編碼的字符任務(wù)2-1:定義字符串壹
例如,使用encode()方法將字符串“你好,世界!”轉(zhuǎn)換為“UTF-8”格式,代碼如下。text="你好,世界!"byte_text=text.encode("UTF-8")print(byte_text)#輸出:b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8c\xe4\xb8\x96\xe7\x95\x8c\xef\xbc\x81'(2)decode()ecode()方法功能與encode()方法功能相反,是Python中內(nèi)置的用于將字節(jié)串解碼為Unicode字符串的方法,語法格式如下所示。bytes.decode(encoding='UTF-8',errors='strict')例如,使用decode()方法將字符串轉(zhuǎn)換為Unicode字符串,代碼如下。byte_text=b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8c\xe4\xb8\x96\xe7\x95\x8c\xef\xbc\x81'text=byte_text.decode("UTF-8")print(text)#輸出:你好,世界!任務(wù)2-2定義列表貳1列表創(chuàng)建和訪問1、列表創(chuàng)建目前,列表的創(chuàng)建方式有多種,如使用方括號[]、使用內(nèi)置函數(shù)list()。其中,最常見的方式是使用方括號[]將元素括起來,并用逗號“,”分割。例如,創(chuàng)建一個(gè)包含整數(shù)、字符串和布爾值的列表,代碼如下。my_list=[1,2,3,"hello",True]而使用內(nèi)置函數(shù)list()則可以將其他可迭代對象(如列表、元組、集合、字典(返回鍵值對的列表)和字符串等)轉(zhuǎn)換為列表并返回,如果傳遞的參數(shù)不可迭代,將會出現(xiàn)TypeError錯(cuò)誤;并且,list()函數(shù)不帶參數(shù),則返回一個(gè)空的列表。例如,將元組轉(zhuǎn)換為列表,代碼如下。my_list=list((1,2,3))任務(wù)2-2定義列表貳2、列表訪問在Python中,由于列表是有序集合,每個(gè)元素都有一個(gè)對應(yīng)的索引,因此可以使用索引來訪問列表中的元素。目前,根據(jù)列表中訪問元素的數(shù)量不同,有單個(gè)元素訪問和多個(gè)元素訪問兩種。my_list[index](1)單個(gè)元素訪問Python中單個(gè)元素訪問通過中括號“[]”結(jié)合索引實(shí)現(xiàn),索引從0開始,也就是第一個(gè)元素的索引是0,第二個(gè)元素的索引是1,以此類推。并且,除了正向索引之外,Python還支持負(fù)向索引,表示從列表末尾開始計(jì)算的位置,即從后往前計(jì)數(shù),例如-1表示最后一個(gè)元素。Python中單個(gè)元素訪問語法格式如下所示。任務(wù)2-2定義列表貳(2)多個(gè)元素訪問其中,index是要訪問的元素的索引值;如果index超出了列表的范圍,將會拋出IndexError異常。例如,創(chuàng)建列表mylist并訪問單個(gè)元素,代碼如下。mylist=['apple','banana','orange']print(mylist[0])#輸出'apple'print(mylist[-1])#輸出'orange'除了單個(gè)元素之外,Python還支持通過(slice)操作訪問列表中的多個(gè)元素,并返回一個(gè)新的列表,其中包含了原始列表中指定范圍內(nèi)的元素。在實(shí)現(xiàn)切片時(shí),使用冒號“:”分隔起始位置和結(jié)束位置,表示取出從起始位置到結(jié)束位置之間的所有元素(不包括結(jié)束位置),語法格式如下所示。my_list[start:end:step]任務(wù)2-2定義列表貳參數(shù)說明見表所示。參數(shù)描述start表示開始的索引值(包含在結(jié)果中),如果省略,則默認(rèn)從列表頭開始end表示結(jié)束的索引值(不包含在結(jié)果中),如果省略,則默認(rèn)到列表尾結(jié)束step表示步長,如果省略,則默認(rèn)為1例如,創(chuàng)建列表mylist并使用切片操作訪問多個(gè)元素,代碼如下。mylist=['apple','banana','orange','grape','pear']print(mylist[1:3])#輸出['banana','orange']print(mylist[:3])#輸出['apple','banana','orange']print(mylist[3:])#輸出['grape','pear']print(mylist[::2])#輸出['apple','orange','pear']任務(wù)2-2定義列表貳2列表元素修改在Python中,列表是可變的(Mutable),即列表中的元素可以被修改。要修改列表中的某個(gè)元素,可以使用索引或切片操作來定位該元素,然后直接賦值即可,語法格式如下所示。my_list[index]=new_value參數(shù)說明見表所示。參數(shù)描述my_list要修改的列表index要修改的元素的索引位置new_value要用來替換原始值的新值任務(wù)2-2定義列表貳例如,使用索引方式修改列表my_list的第1個(gè)元素(即索引為0的元素)并將其替換為字符串“pear”,以及使用切片操作選取了多個(gè)元素并賦值,代碼如下。my_list=['apple','banana','orange','grape','pear']my_list[0]='pear'print(my_list)#輸出['pear','banana','orange','grape','pear']my_list[1:4]=['watermelon','kiwi']print(my_list)#輸出['pear','watermelon','kiwi','pear']任務(wù)2-2定義列表貳3列表內(nèi)置方法目前,除了list()方法外,Python還內(nèi)置了許多與列表相關(guān)的方法,這些方法能夠方便地對列表進(jìn)行操作,如添加、刪除、查找、統(tǒng)計(jì)等,常用方法見表所示。方法描述len(list)返回給定列表中元素的數(shù)量(或長度)。它通常用于確定列表的大小以及在循環(huán)過程中使用list.append(item)可以在不知道列表的長度的情況下,動態(tài)地向列表中添加元素。該方法接受一個(gè)參數(shù),即要添加的元素。并且,該方法會修改原始列表,而且只能一次添加一個(gè)元素,如果需要添加多個(gè)元素,則需要多次調(diào)用該方法list.extend(iterable)用于將可迭代對象iterable中的所有元素一次性地添加到列表的末尾list.insert(index,item)用于在指定索引處向列表中插入一個(gè)新元素,其中:index為要插入新元素的索引,item為要插入的新元素list.pop([index])可以從列表中任意位置移除一個(gè)元素,并返回被移除的元素。其中,index表示要移除元素的索引,如果省略,則默認(rèn)移除并返回列表中的最后一個(gè)元素list.remove(item)用于從列表中移除指定的元素。其中,item表示要從列表中移除的元素值任務(wù)2-2定義列表貳方法描述list.index(item)用于獲取列表中指定元素的索引,如果找不到索引,則會引發(fā)ValueError異常。其中,item表示要查找的元素值max(list)用于獲取列表中的最大值,如果列表中的元素類型不同,則會根據(jù)默認(rèn)規(guī)則進(jìn)行比較。例如,數(shù)字會優(yōu)先于字符串進(jìn)行比較,字符串會根據(jù)字母表順序進(jìn)行比較min(list)用于獲取列表中的最小值sum(list[,start])用于計(jì)算列表中所有元素的和。其中,list為計(jì)算和的列表,start為可選參數(shù),表示求和的初始值,如果不提供默認(rèn)為0list.count(item)用于統(tǒng)計(jì)列表中指定元素出現(xiàn)的次數(shù)。其中,item為要統(tǒng)計(jì)出現(xiàn)次數(shù)的元素值sorted(list,reverse=False)按照升序或降序?qū)α斜磉M(jìn)行排序,并返回新的已排序的列表。其中,list為計(jì)算列表;reverse為排序方式,默認(rèn)為False,表示升序排列l(wèi)ist.sort(key=None,reverse=False)按照升序或降序?qū)α斜磉M(jìn)行排序,并對原列表進(jìn)行修改。其中,key表示用于排序的函數(shù),而reverse表示是否按照降序排列l(wèi)ist.reverse()僅對列表中的元素順序進(jìn)行反轉(zhuǎn),并對原列表進(jìn)行修改,而不會在元素上執(zhí)行任何排序操作任務(wù)2-2定義列表貳例如,分別使用不同的內(nèi)置方法對列表進(jìn)行操作,代碼如下。numbers=[1,2,3]print(len(numbers))#輸出3print(numbers.append(4))#輸出[1,2,3,4]print(numbers.extend([5,6]))#輸出[1,2,3,4,5,6]print(numbers.insert(3,7))#輸出[1,2,3,7,4,5,6]print(numbers.pop([0]))#輸出[2,3,7,4,5,6]print(numbers.remove(6))#輸出[2,3,7,4,5]print(numbers.index(3))#輸出1print(max(numbers))#輸出7print(min(numbers))#輸出2print(sum(numbers))#輸出21print(numbers.count(7))#輸出1print(sorted(numbers,reverse=False))#輸出[2,3,4,5,7]print(numbers.sort(reverse=True))#輸出[7,6,4,3,2]print(numbers.reverse())#輸出[5,4,7,3,2]任務(wù)2-3定義元組叁1元組創(chuàng)建和訪問在Python中,元組(tuple)是一種有序、不可變的數(shù)據(jù)類型,可以用來存儲一組數(shù)據(jù)。盡管元組跟列表非常類似,并且都是Python中的序列類型,它們共同點(diǎn)是可以存儲多個(gè)元素,并且支持索引和切片操作。但是,列表和元組也有一些重要的區(qū)別,如下:由于列表是可變序列,因此在對其進(jìn)行操作時(shí)會重新分配內(nèi)存空間,而元組則不需要重新分配內(nèi)存空間。因此,在只需要讀取元素時(shí),使用元組可能會更加高效。最顯著的區(qū)別是,列表是可變的序列,而元組是不可變的序列,這意味著列表中的元素可以隨意添加、刪除或更改,而元組中的元素則不能更改。列表具有各種內(nèi)置方法(例如append()和remove()),可以方便地對其進(jìn)行修改,而元組則沒有這些方法。任務(wù)2-3定義元組叁元組的定義方式與列表類似,使用逗號“,”分隔不同的元素,并使用圓括號將元素括起來進(jìn)行定義。并且,元組中的元素可以是不同類型的,比如整數(shù)、浮點(diǎn)數(shù)、字符串、列表、元組等。例如,創(chuàng)建一個(gè)包含三個(gè)整數(shù)的元組,代碼如下。1、元組創(chuàng)建tup=(1,2,3)需要注意的是,如果定義只包含一個(gè)元素的元組,需要在元素后加一個(gè)逗號,否則Python會將其視為一個(gè)單獨(dú)的值,而非元組。例如,創(chuàng)建一個(gè)包含一個(gè)整數(shù)的元組,代碼如下。tup=(1,3)在Python中,除了使用圓括號外,還可以使用tuple()方法來創(chuàng)建元組,該方法會將一個(gè)可迭代對象(如列表、字符串等)轉(zhuǎn)換為元組,語法格式如下所示。tuple(iterable)任務(wù)2-3定義元組叁其中,iterable即為可迭代對象。例如,將列表轉(zhuǎn)換為元組,代碼如下。lst=[1,2,3]tup=tuple(lst)2、元組訪問與列表中元素訪問相同,Python中元組中元素的訪問同樣通過索引和切片操作實(shí)現(xiàn)。例如,創(chuàng)建元組并訪問第一個(gè)元素、最后一個(gè)元素以及第二個(gè)元素到第四個(gè)元素,代碼如下。tup=(1,2,3,4,5)print(tup[0])#輸出1print(tup[-1])#輸出5print(tup[1:3])#輸出(2,3,4)任務(wù)2-3定義元組叁2元組刪除相比于列表,元組中元素不能直接被刪除,只能通過“del”關(guān)鍵字將整個(gè)元組從內(nèi)存中刪除,語法格式如下所示。deltup但是需要注意的是,刪除元組后,再嘗試訪問該元組會導(dǎo)致NameError錯(cuò)誤。因此,在刪除元組之前,需要確保不再需要訪問該元組中的任何元素。另外,如果需要刪除元組中的一個(gè)或多個(gè)元素,可以先將元組轉(zhuǎn)換為列表,然后在列表中刪除對應(yīng)的元素,最后將列表轉(zhuǎn)換回元組,代碼如下。tup=('apple','banana','cherry')lst=list(tup)#將元組轉(zhuǎn)換為列表lst.remove('banana')#刪除列表中的元素tup=tuple(lst)#將列表轉(zhuǎn)換回元組print(tup)#輸出:('apple','cherry')任務(wù)2-3定義元組叁3元組內(nèi)置方法在Python中,元組是一個(gè)不可變的數(shù)據(jù)類型,因此它只提供少量的內(nèi)置方法進(jìn)行元素的操作,如索引的查看、元素個(gè)數(shù)統(tǒng)計(jì)等,常用方法見表所示。方法描述len(tup)返回給定元組中元素的數(shù)量(或長度)max(tup)獲取元組中的最大值min(tup)獲取元組中的最小值tup.count(item)獲取指定元素在元組中第一次出現(xiàn)時(shí)的索引值,如果元素不存在,會拋出ValueError異常tup.index(item)用于統(tǒng)計(jì)指定元素在元組中出現(xiàn)的次數(shù)任務(wù)2-3定義元組叁需要注意的是,上述方法不會修改元組本身,而是返回一個(gè)新的結(jié)果。因?yàn)樵M是不可變的數(shù)據(jù)類型,一旦創(chuàng)建了元組,其中的元素就不能被修改,只能通過替換整個(gè)元組的方式進(jìn)行更新。例如,分別使用不同的內(nèi)置方法對元組進(jìn)行操作,代碼如下。tup=(10,20,30)print(len(tup))#輸出:3print(max(tup))#輸出:30print(min(tup))#輸出:10print(tup.count(10))#輸出:1print(tup.index(20))#輸出:1任務(wù)2-4定義列表肆1字典簡介在Python中,字典是一種可變的、無序的數(shù)據(jù)類型,用于存儲鍵值對。字典中的每個(gè)元素都是一個(gè)鍵值對,通常用于需要快速查找和訪問數(shù)據(jù)的場景,是Python中非常重要和常用的數(shù)據(jù)類型,它具有靈活性、可變性、快速訪問等特點(diǎn),如下:鍵值對
字典是由一系列鍵值對組成的,每個(gè)鍵值對都包含一個(gè)唯一的鍵和與之相關(guān)聯(lián)的值??勺冃宰值涫强勺兊模梢韵蚱涮砑?、刪除或修改鍵值對。靈活性字典可以容納不同類型和不同大小的數(shù)據(jù),可以存儲任意類型的對象作為值。無序性字典中的鍵值對是無序的,即它們沒有固定的順序。長度可變性字典的長度是可變的,它可以根據(jù)需要動態(tài)地增加或減少大小??焖僭L問由于字典使用哈希表實(shí)現(xiàn),因此可以快速查找和訪問其中的鍵值對,這使其在大型數(shù)據(jù)集中非常有用。任務(wù)2-4定義字典肆2字典創(chuàng)建和訪問1、字典創(chuàng)建與列表和元組創(chuàng)建不同,字典使用花括號“{}”來創(chuàng)建,每個(gè)鍵值對之間使用冒號“:”分隔,不同的鍵值對之間使用逗號“,”分隔,語法格式如下所示。my_dict={key1:value1,key2:value2,...}參數(shù)說明見表所示。參數(shù)描述my_dict要創(chuàng)建的字典變量名key1、key2字典中的鍵value1、value2相應(yīng)鍵的值任務(wù)2-4定義字典肆例如,創(chuàng)建一個(gè)包含三個(gè)鍵值對的字典,其中的鍵分別是“apple”、“banana”和“cherry”,對應(yīng)的值分別是1、2和3,代碼如下。my_dict={'apple':1,'banana':2,'cherry':3}另外,還可以直接使用花括號“{}”,先創(chuàng)建一個(gè)空字典,然后再向其中添加鍵值對,語法格式如下所示。my_dict={}#創(chuàng)建空字典my_dict[key1]=value1#添加鍵值對my_dict[key2]=value2例如,直接使用花括號“{}”創(chuàng)建字典,代碼如下。my_dict={}my_dict['apple']=1my_dict['banana']=2my_dict['cherry']=3任務(wù)2-4定義字典肆除了使用花括號“{}”進(jìn)行自定的創(chuàng)建外,Python也可以通過dict()方法,從包含鍵值對的序列或者關(guān)鍵字參數(shù)創(chuàng)建字典,語法格式如下所示。#從序列創(chuàng)建my_dict=dict([(key1,value1),(key2,value2),...])#從關(guān)鍵字參數(shù)創(chuàng)建my_dict=dict(key1=value1,key2=value2,...)例如,從包含鍵值對的序列創(chuàng)建字典,代碼如下。my_dict=dict([('apple',1),('banana',2),('cherry',3)])這里直接使用元組列表作為輸入,其中每個(gè)元組由一個(gè)鍵和一個(gè)值組成。dict()方法將此列表轉(zhuǎn)換為一個(gè)字典,并將每個(gè)元組的第一個(gè)元素(即鍵)作為新字典中的每個(gè)鍵,將該元組的第二個(gè)元素(即值)作為每個(gè)鍵的值。任務(wù)2-4定義字典肆目前,字典中元素的訪問均通過鍵實(shí)現(xiàn),這是由于字典中鍵的唯一性決定的,可以分別通過中括號“[]”、get()方法以及運(yùn)算符in實(shí)現(xiàn)。2、字典訪問(1)中括號“[]”訪問字典元素使用中括號“[]”訪問字典中的鍵值對時(shí),只需將所需鍵作為索引傳遞給中括號“[]”,即可獲取該鍵對應(yīng)的值,語法格式如下所示。my_dict[key]如果嘗試訪問不存在的鍵,則會引發(fā)KeyError異常。因此,在訪問字典之前,最好先檢查該鍵是否存在。例如,使用中括號“[]”和鍵來訪問字典元素,代碼如下。my_dict={'apple':1,'banana':2,'cherry':3}print(my_dict['apple'])#輸出1任務(wù)2-4定義字典肆(2)get()方法訪問字典元素my_dict.get(key)例如,使用get()方法訪問字典元素,代碼如下。my_dict={'apple':1,'banana':2,'cherry':3}print(my_dict.get('apple'))#輸出1Python的字典中,還可以使用get()方法來獲取指定鍵對應(yīng)的值。與直接使用中括號“[]”訪問字典元素不同,如果使用get()方法獲取一個(gè)不存在的鍵,不會拋出KeyError異常,而是返回一個(gè)默認(rèn)值(如果已指定)或者None(如果未指定默認(rèn)值),語法格式如下所示。任務(wù)2-4定義字典肆(3)運(yùn)算符in訪問字典元素除了上述兩種方式能夠訪問字典元素外,還可以使用運(yùn)算符in檢查字典中是否存在指定的鍵,返回值為True或False,語法格式如下所示。keyinmy_dict任務(wù)2-4定義字典肆3字典元素操作在Python中,可以使用字典的索引操作和相關(guān)方法來操作字典的元素,包括添加、修改、刪除等操作。1、添加元素my_dict={'apple':1,'banana':2}my_dict['cherry']=3在上面創(chuàng)建字典時(shí),可以先創(chuàng)建空字典,然后通過賦值的方式添加鍵值對的操作即為元素添加。其中,這個(gè)字典不僅可以為空,也可以存在鍵值對。例如,創(chuàng)建一個(gè)鍵分別是“apple”和“banana”,對應(yīng)的值分別是1和2的字典,之后向字典中添加鍵為“cherry”,值為3的鍵值對,代碼如下。任務(wù)2-4定義字典肆my_dict1.update(my_dict2)除此之外,Python中針對字典元素還提供了update()方法,可以將一個(gè)字典中的鍵值對添加到另一個(gè)字典中,語法格式如下所示。例如,使用update()方法向字典my_dict中添加了一個(gè)鍵值對“'cherry':3”,代碼如下。my_dict={'apple':1,'banana':2}my_dict.update({'cherry':3})任務(wù)2-4定義字典肆2、修改元素my_dict={'apple':1,'banana':2,'cherry':3}my_dict['apple']=4update()方法不僅可以實(shí)現(xiàn)元素的添加操作,還可以通過指定的鍵修改字典中已有鍵對應(yīng)的值。例如,使用update()方法修改字典中指定鍵對應(yīng)的值,代碼如下。3、刪除元素目前,刪除字典中指定的元素可以有多種方法,根據(jù)刪除量的不同,可以分為刪除單個(gè)元素、隨機(jī)刪除單個(gè)元素、刪除全部元素。任務(wù)2-4定義字典肆(1)刪除單個(gè)元素刪除單個(gè)元素主要通過字典中的鍵實(shí)現(xiàn),不僅可以通過del關(guān)鍵字刪除指定鍵對應(yīng)的鍵值對,如果該鍵不存在,則會引發(fā)KeyError異常,語法格式如下所示。delmy_dict[key]例如,使用del刪除鍵值對,代碼如下。my_dict={'apple':1,'banana':2}delmy_dict['apple']還可以使用pop()方法刪除指定鍵對應(yīng)的鍵值對,并返回與之關(guān)聯(lián)的值。如果指定的鍵不存在,則pop()方法將引發(fā)KeyError異常,語法格式如下所示。my_dict.pop(key)任務(wù)2-4定義字典肆例如,使用pop()方法刪除鍵值對,代碼如下。my_dict={'apple':1,'banana':2}my_dict.pop('apple')(2)隨機(jī)刪除單個(gè)元素除了刪除指定鍵對應(yīng)的鍵值對外,Python針對字典中的元素,還提供了popitem()方法,可以隨機(jī)刪除一個(gè)鍵值對,并返回已刪除的鍵值對,如果字典為空,則popitem()方法將引發(fā)KeyError異常,語法格式如下所示。my_dict.pop(key)例如,使用popitem()方法隨機(jī)刪除my_dict字典中的一個(gè)鍵值對,并返回已刪除的鍵和值,代碼如下。my_dict={'apple':1,'banana':2}key,value=my_dict.popitem()任務(wù)2-4定義字典肆(3)刪除全部元素當(dāng)字典中的元素不被需要,這時(shí)可以通過clear()方法將字典中所有的元素清空,使其變?yōu)榭兆值?,語法格式如下所示。my_dict.clear()需要注意的是,clear()方法只會刪除字典中的元素,而不會刪除字典本身。因此,清空后的字典仍然存在并可以繼續(xù)使用。任務(wù)2-4定義字典肆4、其他元素操作在Python的字典中,除了元素的添加、修改、刪除等基礎(chǔ)操作外,Python還提供了多個(gè)其他內(nèi)置方法對元素進(jìn)行操作,包括鍵查詢、值查詢等,常用方法見表所示。方法描述dict.copy()返回一個(gè)字典的副本dict.items()返回包含所有(鍵,值)對元組的列表dict.keys()返回包含所有鍵的列表dict.values()返回包含所有值的列表任務(wù)2-4定義字典肆例如,分別使用不同的內(nèi)置方法對字典進(jìn)行操作,代碼如下。my_dict={'apple':1,'banana':2,'cherry':3}print(my_dict.items())#輸出:dict_items([('apple',1),('cherry',3)])print(my_dict.keys())#輸出:dict_keys(['apple','cherry'])print(my_dict.values())#輸出:dict_values([1,3])#創(chuàng)建一個(gè)新字典new_dict=my_dict.copy()#清空字典my_dict.clear()任務(wù)2-5定義集合伍1集合創(chuàng)建和訪問1、集合創(chuàng)建my_set={1,2,3}與字典的創(chuàng)建類似,集合的創(chuàng)建同樣通過花括號“{}”實(shí)現(xiàn),并使用逗號“,”分隔集合中的元素。例如,創(chuàng)建一個(gè)包含三個(gè)整數(shù)的集合,代碼如下。除此之外,Python還提供了set()方法,可以接收一個(gè)可迭代對象(如列表、元組、字符串等),并返回一個(gè)包含該可迭代對象中所有唯一元素的集合。語法格式如下所示。set(iterable)其中,iterable是一個(gè)可迭代對象,如列表、元組或字符串等。例如,創(chuàng)建一個(gè)包含整數(shù)1、2、3的集合,代碼如下。my_set=set([1,2,3])任務(wù)2-5定義集合伍2、集合訪問my_set={1,2,3,'apple','banana'}if2inmy_set:print('2isintheset')else:print('2isnotintheset')
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東省沂水縣第四實(shí)驗(yàn)中學(xué)2023-2024學(xué)年七年級12月月考道德與法治試題(解析版)-A4
- 江蘇省南京市聯(lián)合體2024-2025學(xué)年七年級上學(xué)期期中考試數(shù)學(xué)試題(1)-A4
- 2023年會議電視系統(tǒng)(含終端)項(xiàng)目融資計(jì)劃書
- 有機(jī)化學(xué)題庫(附參考答案)
- 養(yǎng)老院老人心理咨詢師晉升制度
- 2024停薪留職期間員工培訓(xùn)與職業(yè)規(guī)劃合同范本3篇
- 2024農(nóng)機(jī)銷售與農(nóng)業(yè)廢棄物資源化利用合同3篇
- 宏觀經(jīng)濟(jì)學(xué)課件(高教版)
- 2025年河南貨運(yùn)從業(yè)資格證模擬考試試題答案解析
- 2025年湖北貨運(yùn)從業(yè)資格考試題目及答案大全
- 2023年報(bào)告文學(xué)研究(自考)(重點(diǎn))題庫(帶答案)
- 國軍淞滬會戰(zhàn)
- 2023年湖南體育職業(yè)學(xué)院高職單招(語文)試題庫含答案解析
- GB/T 39314-2020鋁合金石膏型鑄造通用技術(shù)導(dǎo)則
- 裝飾裝修施工質(zhì)量檢查評分表
- 非開挖施工技術(shù)講稿課件
- 單絨毛膜雙羊膜囊雙胎2022優(yōu)秀課件
- 《思想道德與法治》 課件 第四章 明確價(jià)值要求 踐行價(jià)值準(zhǔn)則
- 北師大版八年級上數(shù)學(xué)競賽試卷
- 幼兒園講座:課程游戲化、生活化建設(shè)的背景與目的課件
- 地理信息系統(tǒng)(GIS)公開課(課堂)課件
評論
0/150
提交評論