Python列表、元組和字典課件_第1頁(yè)
Python列表、元組和字典課件_第2頁(yè)
Python列表、元組和字典課件_第3頁(yè)
Python列表、元組和字典課件_第4頁(yè)
Python列表、元組和字典課件_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、案例導(dǎo)入案例一:小明是輔導(dǎo)員,在學(xué)校被分派了給學(xué)生分配興趣小組的任務(wù),他想通過(guò)編寫(xiě)程序完成隨機(jī)分配,將N位學(xué)生隨機(jī)分配給M個(gè)興趣小組。如果你是小明,請(qǐng)問(wèn)你將會(huì)在程序中如何保存同學(xué)名單與分組的信息?第6章 列表、元組和字典案例二:小明作為輔導(dǎo)員,為了方便與班上的同學(xué)聯(lián)系,他想制作一個(gè)電子通訊錄。如果你是小明,請(qǐng)問(wèn)你將會(huì)在程序中如何保存同學(xué)的電話(huà)號(hào)碼等通訊信息?第1頁(yè),共35頁(yè)。1列表的嵌套元組(Tuple) 字典(Dictionary)目 錄列表(List)234第2頁(yè),共35頁(yè)。6.1 列表(List)列表既是Python中最基本的數(shù)據(jù)結(jié)構(gòu)又是最常用的數(shù)據(jù)類(lèi)型。我們可以把列表看作一個(gè)大的表格,

2、表格中的每個(gè)元素都分配一個(gè)數(shù)字 - 它的位置,或索引,第一個(gè)索引是0,第二個(gè)索引是1,依此類(lèi)推。創(chuàng)建一個(gè)列表,只要把逗號(hào)分隔的不同的數(shù)據(jù)項(xiàng)使用方括號(hào)括起來(lái)即可。從上面的例子可以看到,列表的數(shù)據(jù)項(xiàng)不需要具有相同的類(lèi)型,可以存儲(chǔ)豐富的信息。對(duì)于列表的其他特性,我們接下來(lái)進(jìn)行詳細(xì)的學(xué)習(xí)。如下所示,我們創(chuàng)建一個(gè)person列表,第0、1、2個(gè)元素分別是一個(gè)人的名字、性別、年齡:person = Xiao, Male ,18 第3頁(yè),共35頁(yè)。6.1 列表(List)訪(fǎng)問(wèn)列表元素我們可以根據(jù)下標(biāo)訪(fǎng)問(wèn)列表中的單個(gè)元素,如下:列表的介紹 list_1=1,4,9,16,25 list_101 list_11

3、4倒序訪(fǎng)問(wèn): list_1-125第4頁(yè),共35頁(yè)。6.1 列表(List)列表的介紹訪(fǎng)問(wèn)列表元素 list_11:34,9 list_1-3:9, 16, 25 list_1-3:49, 16第5頁(yè),共35頁(yè)。6.1 列表(List)不同于String,列表在Python中是可變的,我們可以更新列表中的內(nèi)容。以下,我們通過(guò)append()方法來(lái)在列表的末尾添加一個(gè)元素: list_2= list_2.append(Hadoop) list_2.append(Spark) list_2Hadoop, Spark列表的介紹更新列表第6頁(yè),共35頁(yè)。6.1 列表(List)也可以通過(guò)以下方式,在l

4、ist的尾部添加一個(gè)列表的元素: list_2=list_2+Flume,Kafka list_2Hadoop, Spark, Flume, Kafka列表的介紹更新列表第7頁(yè),共35頁(yè)。6.1 列表(List)還可以修改列表中的元素: list_23=Redis list_2Hadoop, Spark, Flume, Redis列表的介紹更新列表第8頁(yè),共35頁(yè)。6.1 列表(List)當(dāng)然還可以一次性修改列表中多個(gè)位置連續(xù)的元素: list list_21:3=S,F list_2Hadoop, S, F, Redis列表的介紹更新列表第9頁(yè),共35頁(yè)。6.1 列表(List)刪除操作也是

5、必不可少的: list_3=physics,chemistry,mathmatics del list_31 list_3physics, mathmatics列表的介紹刪除列表元素第10頁(yè),共35頁(yè)。6.1 列表(List)通常我們用循環(huán)語(yǔ)句可以很容易地遍歷列表中的數(shù)據(jù)并對(duì)其進(jìn)行處理, 列表的循環(huán)遍歷我們首先創(chuàng)建列表list如下: list=apple,banana,grape,peach,orange,pear,strawberry接下來(lái)我們以for循環(huán)為例,介紹Python中列表的循環(huán)遍歷。第11頁(yè),共35頁(yè)。6.1 列表(List)循環(huán)中輪流取出元素的值: 列表的循環(huán)遍歷按元素遍歷 l

6、ist=apple,banana,grape,peach,orange,pear,strawberry for fruit in list: .print(fruit).applebananagrape peachorangepearstrawberry第12頁(yè),共35頁(yè)。6.1 列表(List)按下標(biāo)遍歷我們還可以通過(guò)len()計(jì)算出list的長(zhǎng)度,也即是list下標(biāo)的取值范圍,循環(huán)中通過(guò)下標(biāo)訪(fǎng)問(wèn)元素: for i in range(len(list):.print(listi) 列表的循環(huán)遍歷第13頁(yè),共35頁(yè)。6.1 列表(List)使用enumerate遍歷循環(huán)中輪流取出元素的值: 列

7、表的循環(huán)遍歷 for i, val in enumerate(list):.print (序號(hào):%s 值:%s % (i + 1, val).序號(hào):1 值:apple序號(hào):2 值:banana序號(hào):3 值:grape序號(hào):4 值:peach序號(hào):5 值:orange序號(hào):6 值:pear序號(hào):7 值:strawberry enumerate() 函數(shù)用于將一個(gè)可遍歷的數(shù)據(jù)對(duì)象(如列表、元組或字符串)組合為一個(gè)索引序列,同時(shí)列出數(shù)據(jù)和數(shù)據(jù)下標(biāo),一般用在 for 循環(huán)當(dāng)中。我們還可以結(jié)合enumerate()來(lái)遍歷list:第14頁(yè),共35頁(yè)。6.1 列表(List)Python列表的函數(shù) 列表的

8、常見(jiàn)操作操作符是函數(shù)的一種,以下“+”號(hào)用于組合列表,“*”號(hào)用于重復(fù)列表。Python 表達(dá)式結(jié)果描述len(1, 2, 3)3長(zhǎng)度1, 2, 3 + 4, 5, 61, 2, 3, 4, 5, 6組合Hi! * 4Hi!, Hi!, Hi!, Hi!重復(fù)3 in 1, 2, 3True元素是否存在于列表中for x in 1, 2, 3: print x,1 2 3迭代表6-1 Python列表腳本操作符第15頁(yè),共35頁(yè)。6.1 列表(List)Python還包含以下常用函數(shù): 列表的常見(jiàn)操作表6-2 Python列表內(nèi)置函數(shù)第16頁(yè),共35頁(yè)。6.1 列表(List)Python列表的

9、方法 列表的常見(jiàn)操作表6-3 Python列表內(nèi)置方法序號(hào)方法描述1list.append(obj)在列表末尾添加新的對(duì)象 2list.count(obj)統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù)3list.extend(seq)在列表末尾一次性追加另一個(gè)序列中的多個(gè)值(用新列表擴(kuò)展原來(lái)的列表)4list.index(obj)從列表中找出某個(gè)值第一個(gè)匹配項(xiàng)的索引位置5list.insert(index, obj)將對(duì)象插入列表6list.pop(index=-1)移除列表中一個(gè)元素(默認(rèn)最后一個(gè)),并且返回該元素值7list.remove(obj)移除列表中某個(gè)值的第一個(gè)匹配項(xiàng)8list.reverse

10、()反向列表中元素9list.sort(cmp=None, key=None, reverse=False)對(duì)原列表進(jìn)行排序第17頁(yè),共35頁(yè)。1列表的嵌套元組(Tuple) 字典(Dictionary)目 錄列表(List)234第18頁(yè),共35頁(yè)。6.2 列表的嵌套在上一節(jié)的內(nèi)容中,我們已經(jīng)學(xué)會(huì)了什么是列表。列表里面的元素可以包含另一個(gè)列表嗎?答案是肯定的。我們本節(jié)來(lái)了解列表的嵌套。什么是列表的嵌套列表嵌套案例分配學(xué)生到不同興趣小組第19頁(yè),共35頁(yè)。6.2 列表的嵌套我們首先創(chuàng)建兩個(gè)列表list_1和list_2如下: list_1=I am a inner list list_2=I

11、am a outer list接下來(lái)我們將list_1放入list_2中: list_2.append(list_1) list_2I am a outer list, I am a inner list以上就是一個(gè)最簡(jiǎn)單的列表的嵌套的例子。什么是列表的嵌套第20頁(yè),共35頁(yè)。6.2 列表的嵌套什么是列表的嵌套依照以上方法,我們可以任意在列表中嵌套列表,以下代碼是對(duì)任意多重嵌套列表的遍歷:def printlist(list): def printlist(list):. . 現(xiàn)有一個(gè)列表,里面元素包括數(shù)字、字母等元素以及包含這類(lèi)元素的列表,現(xiàn)在我們輸出這個(gè)列表中的所有非列表元素,如:1,2,

12、3,2,3,1,3,12,22,a,12,輸出:1, 2, 3, 2, 3, 1, 3, 12, 22, a, 12第21頁(yè),共35頁(yè)。6.2 列表的嵌套什么是列表的嵌套第22頁(yè),共35頁(yè)。2、列表嵌套案例分配學(xué)生到不同興趣小組 一個(gè)學(xué)校,有3個(gè)興趣小組,現(xiàn)在有8位學(xué)生等待小組的分配,請(qǐng)編寫(xiě)程序,完成隨機(jī)的分配? 有3個(gè)興趣小組,然后每個(gè)興趣小組將包含隨機(jī)分配的小組成員,需要用到列表的嵌套, 如:school_teams= 小組1, 小組2, 小組3 什么是列表的嵌套第23頁(yè),共35頁(yè)。2、列表嵌套案例分配學(xué)生到不同興趣小組什么是列表的嵌套 另外,我們還學(xué)要一個(gè)普通的列表保存全體學(xué)生的名單:

13、student_names = 李小明,王華,吳小莉,張三,李四,牛二,王五,吳六 最后,我們引入隨機(jī)函數(shù)來(lái)幫組我們做分配。函數(shù)random.randint(0,2)將隨機(jī)產(chǎn)生數(shù)字02來(lái)作為小組13在school_teams中的下標(biāo)。具體代碼如下:第24頁(yè),共35頁(yè)。1列表的嵌套元組(Tuple) 字典(Dictionary)目 錄列表(List)234第25頁(yè),共35頁(yè)。6.3 元組(Tuple)Python的元組與列表類(lèi)似,不同之處在于元組的元素不能修改,且元組使用小括號(hào),列表使用方括號(hào)。由于元組是不可修改的,其主要作用是作為參數(shù)傳遞給函數(shù)調(diào)用、或是從函數(shù)調(diào)用那里獲得參數(shù)時(shí),保護(hù)其內(nèi)容不被

14、外部接口修改。下面我們主要來(lái)學(xué)習(xí)元組的創(chuàng)建和訪(fǎng)問(wèn)。創(chuàng)建一個(gè)元組: tuple_1=(1,physics,98)創(chuàng)建一個(gè)空元組: tuple_2=( )創(chuàng)建一個(gè)元素的元組: tuple_3=(1, )第26頁(yè),共35頁(yè)。6.3 元組(Tuple)訪(fǎng)問(wèn)一個(gè)元組: tuple_101 tuple_11physics tuple_1298元組的連接: tup1=(1,2) tup2=(a,b) tup1+tup2(1, 2, a, b)表6-4 Python元組內(nèi)置函數(shù)序號(hào)方法描述1len(tuple)計(jì)算元組元素個(gè)數(shù) 2max(tuple) 返回元組中元素最大值 3min(tuple) 返回元組中元

15、素最小值 4tuple(seq) 將列表轉(zhuǎn)為元組 第27頁(yè),共35頁(yè)。1列表的嵌套元組(Tuple) 字典(Dictionary)目 錄列表(List)234第28頁(yè),共35頁(yè)。6.4、字典(Dictionary)字典是一種通過(guò)名字或者關(guān)鍵字引用的數(shù)據(jù)結(jié)構(gòu),也就是說(shuō)我們給一個(gè)字典里面的每個(gè)值都取了名字也就是鍵,在這個(gè)字典中,我們可以通過(guò)這個(gè)名字訪(fǎng)問(wèn)對(duì)應(yīng)的數(shù)據(jù)值。在一個(gè)字典中,鍵是不重復(fù)的,不同建對(duì)應(yīng)的值可以是相同的。字典介紹字典的常見(jiàn)操作第29頁(yè),共35頁(yè)。6.4、字典(Dictionary) 字典介紹字典的每個(gè)鍵值 key=value 對(duì)用冒號(hào) : 分割,每個(gè)鍵值對(duì)之間用逗號(hào) , 分割,整個(gè)

16、字典包括在花括號(hào) 中 ,格式如下所示:d = key1 : value1, key2 : value2 比如我們可以創(chuàng)建一個(gè)字典,用于做我們的電話(huà)簿: tel_book= Alice: 2341, Beth: 9102, Cecil: 3258 tel_bookAlice: 2341, Beth: 9102, Cecil: 3258現(xiàn)在我們想知道Alice的電話(huà)號(hào)碼,我們可以根據(jù)“Alice”這個(gè)名字訪(fǎng)問(wèn): tel_bookAlice2341第30頁(yè),共35頁(yè)。6.4、字典(Dictionary) 字典介紹當(dāng)然,我們還可以用字典來(lái)描述某個(gè)事物的各個(gè)屬性,比如一個(gè)學(xué)生的信息: student =

17、 Name:Lily,Age:19,Sex:Female,Class:3163 studentName: Lily, Age: 19, Sex: Female, Class: 3163第31頁(yè),共35頁(yè)。6.4、字典(Dictionary) 字典介紹如果我們想知道學(xué)生的姓名、年齡等,將屬性作為鍵來(lái)訪(fǎng)問(wèn)對(duì)應(yīng)的值即可: student studentNameLily studentAge 19字典可以直接修改已有屬性的值,比如我們的Lily長(zhǎng)大了一歲: studentAge 19 studentAge=studentAge+1 studentAge20還可以添加新屬性、刪除舊屬性。我們刪除Lily

18、的班級(jí)年級(jí)信息,添加上住址: del studentClass del studentGrade studentAddress=Flower Park 111 studentName: Lily, Age: 20, Sex: Female, Address: Flower Park 111第32頁(yè),共35頁(yè)。6.4、字典(Dictionary) 字典的常見(jiàn)操作本節(jié)我們分函數(shù)和方法來(lái)介紹字典的常見(jiàn)操作。 表6-5 Python字典內(nèi)置函數(shù)第33頁(yè),共35頁(yè)。6.4、字典(Dictionary) 字典的常見(jiàn)操作表6-6 Python字典內(nèi)置方法第34頁(yè),共35頁(yè)。6.4、字典(Dictionary) 字典的遍歷字典的遍歷可以分三種,根據(jù)鍵遍歷、根據(jù)值遍歷、根據(jù)字典項(xiàng)遍歷。我們先創(chuàng)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論