Python程序設(shè)計(jì)教程第5章映射和集合類(lèi)型課件_第1頁(yè)
Python程序設(shè)計(jì)教程第5章映射和集合類(lèi)型課件_第2頁(yè)
Python程序設(shè)計(jì)教程第5章映射和集合類(lèi)型課件_第3頁(yè)
Python程序設(shè)計(jì)教程第5章映射和集合類(lèi)型課件_第4頁(yè)
Python程序設(shè)計(jì)教程第5章映射和集合類(lèi)型課件_第5頁(yè)
已閱讀5頁(yè),還剩14頁(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)介

1、第5章映射和集合類(lèi)型第1頁(yè),共19頁(yè)。2.1 映射類(lèi)型字典字典是Python語(yǔ)言中唯一的映射類(lèi)型,是一種無(wú)序的映射的集合。這種映射類(lèi)型由鍵(key)和值(value)組成(統(tǒng)稱為“鍵值對(duì)”),一個(gè)鍵只能對(duì)應(yīng)一個(gè)值,多個(gè)鍵可以對(duì)應(yīng)相同的值。字典對(duì)象是可變的數(shù)據(jù)類(lèi)型,長(zhǎng)度可變,可以存儲(chǔ)、添加和刪除任意個(gè)鍵值對(duì),可以通過(guò)索引來(lái)修改鍵映射的值。字典可以任意嵌套,即鍵映射的值可以是一個(gè)字典。字典中的值沒(méi)有特定順序,每個(gè)值都對(duì)應(yīng)一個(gè)唯一的鍵,字典也被稱為關(guān)聯(lián)數(shù)組或哈希表。第2頁(yè),共19頁(yè)。字典類(lèi)型和序列類(lèi)型的區(qū)別字典類(lèi)型和序列類(lèi)型的區(qū)別在于其存儲(chǔ)和訪問(wèn)數(shù)據(jù)的方式不同。字典存儲(chǔ)的是對(duì)象的引用,而不是對(duì)象本身

2、。序列類(lèi)型只用整型作為其索引,或者說(shuō)只用整型作為其鍵。映射類(lèi)型則可以用其它對(duì)象類(lèi)型作為鍵,且這個(gè)鍵和其指向的值有一定的關(guān)聯(lián)性,而序列類(lèi)型沒(méi)有。字典的鍵必須是可哈希的對(duì)象,如字符串、整型、元組(元素不包含可變數(shù)據(jù)類(lèi)型)都是可哈希的對(duì)象,都可以作為字典的鍵,而列表、字典是不可哈希的對(duì)象,所以不能用作字典的鍵。第3頁(yè),共19頁(yè)。5.1.1 創(chuàng)建字典字典由一系列的“鍵值對(duì)”組成,可以通過(guò)使用花括號(hào),并把花括號(hào)里的每一個(gè)鍵值對(duì)采用逗號(hào)進(jìn)行分隔,鍵值對(duì)中間用冒號(hào)隔開(kāi)的方式來(lái)創(chuàng)建一個(gè)字典。創(chuàng)建字典的一般格式如下: dictionary_name=key1:value,key2:value2,keyN:val

3、ueN 其中,key1、key2、keyN等表示字典的鍵,value1、value2、valueN表示字典的鍵對(duì)應(yīng)的值。此外,還可以通過(guò)內(nèi)建函數(shù)dict()方法和fromkeys()方法創(chuàng)建一個(gè)字典。dict()函數(shù)可以接收以(key,value)形式的列表或元組。使用fromkeys()函數(shù)可以創(chuàng)建一個(gè)“默認(rèn)”字典,字典中鍵對(duì)應(yīng)的值都相同,如果沒(méi)有指定值,默認(rèn)為None。第4頁(yè),共19頁(yè)。5.1.1 創(chuàng)建字典1.通過(guò)普通方式創(chuàng)建字典2.通過(guò)內(nèi)建函數(shù)dict()來(lái)創(chuàng)建字典3.通過(guò)內(nèi)建函數(shù)fromkeys()來(lái)創(chuàng)建字典第5頁(yè),共19頁(yè)。5.1.2 訪問(wèn)字典訪問(wèn)字典中鍵值對(duì)的值可以通過(guò)方括號(hào)并指定

4、相應(yīng)的鍵的形式訪問(wèn)。需要注意的是:當(dāng)指定一個(gè)字典中不存在的鍵時(shí)就會(huì)拋KeyError異常。遍歷一個(gè)字典可以有以下幾種方式:通過(guò)指定鍵的方式遍歷字典。在Python2.2以后,可以直接遍歷字典這個(gè)迭代器對(duì)象,每次返回的是字典的鍵。因此,可以通過(guò)dictionary_namekey的方式訪問(wèn)對(duì)應(yīng)的值,從而可以遍歷字典中所有的鍵值對(duì)。通過(guò)內(nèi)建函數(shù)items()遍歷字典。該函數(shù)返回的是一個(gè)由鍵值對(duì)組成的元組的列表。因此,可以遍歷這個(gè)列表,從而遍歷字典中所有的鍵值對(duì)。第6頁(yè),共19頁(yè)。5.1.2 訪問(wèn)字典1.通過(guò)指定鍵的方式遍歷字典2.通過(guò)內(nèi)建函數(shù)items()遍歷字典第7頁(yè),共19頁(yè)。5.1.3 更新

5、字典字典是可變數(shù)據(jù)類(lèi)型,即字典的長(zhǎng)度和元素都是可以改變的。下面將介紹更新字典的方式:添加元素、修改元素和刪除元素。當(dāng)然,這里講的元素指的是鍵值對(duì)。第8頁(yè),共19頁(yè)。添加元素向字典添加一個(gè)元素可以通過(guò)賦值語(yǔ)句實(shí)現(xiàn),該賦值語(yǔ)句的寫(xiě)法如下: dictionary_namekey=value添加元素還可以通過(guò)setdefault()內(nèi)建函數(shù)實(shí)現(xiàn)。該函數(shù)的聲明如下: dictionary_name.setdefault(key,default_value)第9頁(yè),共19頁(yè)。修改元素修改元素是通過(guò)賦值語(yǔ)句實(shí)現(xiàn)的。這在添加元素里面已經(jīng)提到,要求在賦值時(shí)指定的鍵值要在字典中存在。第10頁(yè),共19頁(yè)。刪除元素刪

6、除字典中的元素可以通過(guò)del()函數(shù)、pop()函數(shù)或del語(yǔ)句實(shí)現(xiàn),下面將分別介紹這幾種方式。通過(guò)del()函數(shù)刪除字典中的元素通過(guò)pop()函數(shù)刪除字典中的元素通過(guò)del語(yǔ)句刪除字典中的元素第11頁(yè),共19頁(yè)。5.1.4 字典常用操作和方法1求長(zhǎng)度 len()函數(shù)可返回字典的長(zhǎng)度,即“鍵:值”對(duì)的個(gè)數(shù)。2關(guān)系判斷 in操作符可用于判斷是否包含某個(gè)鍵。3clear()方法 刪除全部字典。4copy()方法 復(fù)制字典對(duì)象。第12頁(yè),共19頁(yè)。5.1.4 字典常用操作和方法5get(key,default)方法 返回鍵key映射的值。如果鍵不存在,返回空值。可用default參數(shù)指定不存在的鍵的

7、返回值。6鍵視圖的集合操作 鍵視圖支持各種集合運(yùn)算,鍵值對(duì)視圖和值視圖不支持集合運(yùn)算。第13頁(yè),共19頁(yè)。5.2 集合類(lèi)型在Python中,集合也是一種無(wú)序不重復(fù)的元素集,類(lèi)似數(shù)學(xué)中的集合。集合中的元素要求是可哈希的對(duì)象。集合有兩種不同的類(lèi)型:可變集合和不可變集合。可變集合可以對(duì)集合中的元素進(jìn)行添加和刪除,而不可變集合則不可以添加和刪除元素。集合的基本用途包括成員關(guān)系測(cè)試和重復(fù)條目消除,它也支持并、交、差等數(shù)學(xué)集合操作。第14頁(yè),共19頁(yè)。5.2.1 創(chuàng)建集合由于集合有兩種不同的類(lèi)型,因此,創(chuàng)建的方式也不同。如果創(chuàng)建一個(gè)可變集合,可以通過(guò)花括號(hào),并把花括號(hào)里的每一個(gè)元素采用逗號(hào)進(jìn)行分隔的方式或

8、者通過(guò)內(nèi)建函數(shù)set()來(lái)實(shí)現(xiàn)。而要?jiǎng)?chuàng)建一個(gè)不可變的集合,只能通過(guò)內(nèi)建函數(shù)frozenset()實(shí)現(xiàn)。創(chuàng)建可變集合的一般格式如下: set_name=element1,element2,element3,elementN注意:使用set()或frozenset()函數(shù)創(chuàng)建集合時(shí),參數(shù)是一個(gè)列表,如果創(chuàng)建的是一個(gè)單字符多元素的集合,則參數(shù)可以是一個(gè)字符串。第15頁(yè),共19頁(yè)。5.2.2 訪問(wèn)集合由于集合中的元素是無(wú)序的,并且也沒(méi)有像字典中“鍵值對(duì)”的對(duì)應(yīng)關(guān)系,所以無(wú)法獲取某個(gè)指定的元素,只能遍歷整個(gè)集合來(lái)訪問(wèn)其中的所有元素。第16頁(yè),共19頁(yè)。5.2.3 更新集合(可變集合)更新集合只能更新可變

9、集合,因?yàn)橹挥锌勺兗现械脑夭拍軌蛐薷?,而不可變集合則不能修改。這里的更新也只有向集合中添加元素和從集合中刪除元素,而沒(méi)有修改元素,因?yàn)闊o(wú)法獲取某個(gè)指定的元素。下面介紹這兩種更新集合的方式。 1添加元素 向集合添加一個(gè)元素可以通過(guò)內(nèi)建函數(shù)set.add()實(shí)現(xiàn),而一次性添加多個(gè)元素可以通過(guò)set.update()函數(shù)實(shí)現(xiàn),該函數(shù)其實(shí)是將一個(gè)集合中的所有元素添加到set集合中,同時(shí)去掉重復(fù)的元素。2.刪除元素 刪除集合中的元素可以通過(guò)remove()函數(shù)、pop()函數(shù)、discard()函數(shù)或clear()函數(shù)實(shí)現(xiàn)。其中,pop()函數(shù)刪除集合中的第一個(gè)元素并返回,而clear()函數(shù)將刪除

10、集合中的所有元素。remove()和discard()的區(qū)別是若被刪除元素不是集合中的元素,前者會(huì)拋出KeyError異常,后者不會(huì)拋出異常。第17頁(yè),共19頁(yè)。5.2.4 集合操作集合對(duì)象支持并集、交集、差集等集合操作。第18頁(yè),共19頁(yè)。小 結(jié)(1)字典。字典是Python語(yǔ)言中的唯一的映射類(lèi)型,它由鍵(key)和值(value)組成,是可變的數(shù)據(jù)類(lèi)型,其值沒(méi)有特定順序。(2)字典的創(chuàng)建、訪問(wèn)和更新。字典的創(chuàng)建可以通過(guò)使用花括號(hào)并采用逗號(hào)將每個(gè)鍵值對(duì)隔開(kāi),鍵值對(duì)中間用冒號(hào)分隔的方式或使用內(nèi)建函數(shù)dict()和formkeys()方法實(shí)現(xiàn)。字典的訪問(wèn)可以通過(guò)指定鍵的方式、遍歷內(nèi)建函數(shù)items()的返回對(duì)象的方式實(shí)現(xiàn)。而字典的更新又包括添加元素、修改元素和刪除元素。添加元素通過(guò)賦值語(yǔ)句或內(nèi)建函數(shù)setdefault()實(shí)現(xiàn);修改元素也是通過(guò)賦值語(yǔ)句實(shí)現(xiàn);刪除元素通過(guò)del()、pop()或del語(yǔ)句實(shí)現(xiàn)。(3)集合。集合是一種無(wú)序不重復(fù)的元素集。集合有兩種不同的類(lèi)型,可變集合和不可變集合??梢詫?duì)可變集合中的元素進(jìn)行添加和刪除。(4)集合的創(chuàng)建、訪問(wèn)和更新。由于集合有兩種不同的類(lèi)型,因此創(chuàng)建的方式也不同。如果創(chuàng)建一個(gè)可變集合,可以通過(guò)使用花括號(hào),并采用逗號(hào)將花括號(hào)內(nèi)元素分隔的方式或者通過(guò)內(nèi)建函數(shù)set()來(lái)實(shí)現(xiàn)。而要?jiǎng)?chuàng)建不可

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論