Python語(yǔ)言基礎(chǔ)與應(yīng)用 課件 第6章 Python 組合數(shù)據(jù)類型_第1頁(yè)
Python語(yǔ)言基礎(chǔ)與應(yīng)用 課件 第6章 Python 組合數(shù)據(jù)類型_第2頁(yè)
Python語(yǔ)言基礎(chǔ)與應(yīng)用 課件 第6章 Python 組合數(shù)據(jù)類型_第3頁(yè)
Python語(yǔ)言基礎(chǔ)與應(yīng)用 課件 第6章 Python 組合數(shù)據(jù)類型_第4頁(yè)
Python語(yǔ)言基礎(chǔ)與應(yīng)用 課件 第6章 Python 組合數(shù)據(jù)類型_第5頁(yè)
已閱讀5頁(yè),還剩63頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

6.1列表及其操作

6.2元組及其操作

6.3集合及其操作

6.4字典及其操作

6.5組合數(shù)據(jù)類型的高級(jí)操作第6章組合數(shù)據(jù)類型考綱考點(diǎn)

組合數(shù)據(jù)類型的基本概念

列表及元組類型:定義、索引、切片

列表及元組類型的操作:列表的操作函數(shù)、列表的操作方法

集合及字典類型:定義、索引

集合及字典類型的操作:操作函數(shù)、操作方法知識(shí)導(dǎo)圖前言

組合數(shù)據(jù)類型概述組合數(shù)據(jù)類型

Python語(yǔ)言中最常用的組合數(shù)據(jù)類型有3大類,分別是集合類型、序列類型和映射類型。

集合類型是一個(gè)具體的數(shù)據(jù)類型名稱,而序列類型和映射類型是一類數(shù)據(jù)類型的總稱。組合數(shù)據(jù)類型

集合類型是一個(gè)元素集合,元素之間無(wú)序,相同元素在集合中唯一存在。

序列類型是一個(gè)元素向量,元素之間存在先后關(guān)系,通過序號(hào)訪問,元素之間不排他。序列類型的典型代表是字符串類型和列表類型。

映射類型是“鍵-值”數(shù)據(jù)項(xiàng)的組合,每個(gè)元素是一個(gè)鍵值對(duì),表示為(key,

value)。映射類型的典型代表是字典類型。組合數(shù)據(jù)類型序列類型概述

序列類型是一維元素向量,元素之間存在先后關(guān)系,元素類型可以不同,通過序號(hào)訪問。

由于元素之間存在順序關(guān)系,所以序列中可以存在相同數(shù)值但位置不同的元素。Python語(yǔ)言中有很多數(shù)據(jù)類型都是序列類型,其中比較重要的是:字符串類型和列表類型,此外還包括元組類型。6.1列表類型列表的定義

列表是包含0個(gè)或多個(gè)元組組成的有序序列,屬于序列類型。列表可以元素進(jìn)行增加、刪除、替換、查找等操作。列表沒有長(zhǎng)度限制,元素類型可以不同,不需要預(yù)定義長(zhǎng)度。

列表類型用中括號(hào)([])表示,也可以通過list(x)函數(shù)將集合或字符串類型轉(zhuǎn)換成列表類型。使用中括號(hào)[]直接創(chuàng)建如L=[]使用構(gòu)造函數(shù)list創(chuàng)建

如L2=list(['a','bc',1,2.5,])使用列表推導(dǎo)式創(chuàng)建通過range類迭代生成列表11列表的創(chuàng)建列表的基本操作

索引是列表的基本操作,用于獲得列表的一個(gè)元素。>>>ls

=

[1010,

"1010",

[1010,

"1010"],

1010]>>>ls[3]1010>>>ls[-2][1010,'1010']>>>ls[1:3][“1010”,[1010,"1010"]]

訪問列表元素通過索引下擺進(jìn)行。索引下標(biāo)可以是正整數(shù)或負(fù)整數(shù),也可以通過切片進(jìn)行列表的基本操作

切片是列表的基本操作,用于獲得列表的一個(gè)片段,即獲得一個(gè)或多個(gè)元素。切片后的結(jié)果也是列表類型。切片有兩種使用方式:<列表或列表變量>[N:M]或<列表或列表變量>[N:M:K]列表的基本操作

切片獲取列表類型從N到M(不包含M)的元素組成新的列表。當(dāng)K存在時(shí),切片獲取列表類型從N到M(不包含M)以K為步長(zhǎng)所對(duì)應(yīng)元素組成的列表。>>>ls

=

[1010,

"1010",

[1010,

"1010"],

1010]>>>ls[1:4]['1010',[1010,'1010'],1010]>>>ls[-1:-3][]>>>ls[-3:-1]['1010',[1010,'1010']]>>>ls[0:4:2][1010,[1010,'1010']]列表的基本操作

可以使用遍歷循環(huán)對(duì)列表類型的元素進(jìn)行遍歷操作,基本使用方式如下:for

<循環(huán)變量>

in

<列表變量>:<語(yǔ)句塊>>>>ls

=

[1010,

"1010",

[1010,

"1010"],

1010]>>>for

i

in

ls:print(i*2)202010101010[1010,'1010',1010,'1010']2020列表的修改和刪除

可以使用下標(biāo)和賦值語(yǔ)句實(shí)現(xiàn)對(duì)列表類型的元素修改和刪除>>>l=['a','bc',1,2.5,True]>>>l[0]='x'#第1個(gè)元素改為‘x’>>>l[3]=5#第4個(gè)元素改為5>>>l#修改后的列表['x','bc',1,5,True]>>>l=['a','bc',1,2.5,True]>>>dell[1] #刪除第2個(gè)元素>>>dell[3]#刪除第4個(gè)元素>>>l#刪除元素后的列表['a',1,2.5]加運(yùn)算乘運(yùn)算In運(yùn)算17列表的運(yùn)算操作符及應(yīng)用描述xins如果x是序列s的元素,返回True,否則返回Falsexnotins如果x是序列s的元素,返回False,否則返回Trues+t連接兩個(gè)序列s和ts*n或n*s將序列s復(fù)制n次s[i]索引,返回s中的第i個(gè)元素,i是序列的序號(hào)s[i:j]

或s[i:j:k]切片,返回序列s中第i到j(luò)以k為步長(zhǎng)的元素子序列列表的操作方法

列表類型存在一些操作方法,使用語(yǔ)法形式是:<列表變量>.<方法名稱>(<方法參數(shù)>)列表的操作方法

ls.append(x)在列表ls最后增加一個(gè)元素x。>>>lt

=

["1010",

"10.10",

"Python"]>>>lt.append(1010)>>>print(lt)['1010','10.10','Python',1010]>>>lt.append([1010,

0x1010])>>>print(lt)['1010','10.10','Python',1010,[1010,4112]]列表的操作方法

ls.append(x)僅用于在列表中增加一個(gè)元素,如果希望增加多個(gè)元素,可以使用加號(hào),將兩個(gè)列表合并。>>>lt

=

["1010",

"10.10",

"Python"]>>>ls

=

[1010,

[1010,

0x1010]]>>>ls

+=

lt>>>print(lt)['1010','10.10','Python',1010,[1010,4112]]列表的操作方法

ls.insert(i,x)在列表ls中序號(hào)i位置上增加元素x,序號(hào)i之后的元素序號(hào)依次增加。>>>lt

=

["1010",

"10.10",

"Python"]>>>lt.insert(1,

1010)>>>print(lt)['1010',1010,'10.10','Python']

ls.clear()將列表ls的所有元素刪除,清空列表。>>>lt

=

["1010",

"10.10",

"Python"]>>>lt.clear()>>>print(lt)[]列表的操作方法

ls.pop(i)將返回列表ls中第i位元素,并將該元素從列表中刪除。>>>lt

=

["1010",

"10.10",

"Python"]>>>print(lt.pop(1))10.10>>>print(lt)["1010","Python"]

ls.remove(x)將刪除列表ls中第一個(gè)出現(xiàn)的x元素。>>>lt

=

["1010",

"10.10",

"Python"]>>>lt.remove("10.10")>>>print(lt)["1010","Python"]列表的操作方法

除了上述方法,還可以使用Python保留字del對(duì)列表元素或片段進(jìn)行刪除,使用方法如下:del

<列表變量>[<索引序號(hào)>]

或del

<列表變量>[<索引起始>:<索引結(jié)束>]>>>lt

=

["1010",

"10.10",

"Python"]>>>del

lt[1]>>>print(lt)["1010","Python"]>>>lt

=

["1010",

"10.10",

"Python"]>>>del

lt[1:]>>>print(lt)["1010"]列表的操作方法

ls.reverse()將列表ls中元素進(jìn)行逆序反轉(zhuǎn)。>>>lt

=

["1010",

"10.10",

"Python"]>>>print(lt.reverse())['Python','10.10','1010']

ls.copy()

復(fù)制ls中所有元素生成一個(gè)新列表。>>>lt

=

["1010",

"10.10",

"Python"]>>>ls

=

lt.copy()>>>lt.clear()

#

清空l(shuí)t>>>print(ls)["1010","10.10","Python"]

由上例看出,一個(gè)列表lt使用.copy()方法復(fù)制后賦值給變量ls,將lt元素清空不影響新生成的變量ls。列表的操作方法

需要注意,對(duì)于基本的數(shù)據(jù)類型,如整數(shù)或字符串,可以通過等號(hào)實(shí)現(xiàn)元素賦值。但對(duì)于列表類型,使用等號(hào)無(wú)法實(shí)現(xiàn)真正的賦值。其中,ls

=

lt語(yǔ)句并不是拷貝lt中元素給變量ls,而是新關(guān)聯(lián)了一個(gè)引用,即ls和lt所指向的是同一套內(nèi)容。>>>lt

=

["1010",

"10.10",

"Python"]>>>ls

=

lt

#

僅使用等號(hào)>>>lt.clear()>>>print(ls)[]列表的操作方法

使用索引配合等號(hào)(=)可以對(duì)列表元素進(jìn)行修改。>>>lt

=

["1010",

"10.10",

"Python"]>>>lt[1]

=

1010>>>print(lt)["1010",1010,"Python"]

列表是一個(gè)十分靈活的數(shù)據(jù)結(jié)構(gòu),它具有處理任意長(zhǎng)度、混合類型的能力,并提供了豐富的基礎(chǔ)操作符和方法。當(dāng)程序需要使用組合數(shù)據(jù)類型管理批量數(shù)據(jù)時(shí),請(qǐng)盡量使用列表類型。列表的操作函數(shù)

列表類型繼承序列類型特點(diǎn),有一些通用的操作函數(shù)>>>ls

=

[1010,

"1010",

[1010,

"1010"],

1010]>>>len(ls)4>>>lt

=

["Python",

["1010",

1010,

[1010,

"Python"]]]>>>len(lt)2列表的操作函數(shù)

min(ls)和max(ls)分別返回一個(gè)列表的最小或最大元素,使用這兩個(gè)函數(shù)的前提是列表中各元素類型可以進(jìn)行比較。>>>ls

=

[1010,

10.10,

0x1010]>>>min(ls)10.1>>>lt

=

["1010",

"10.10",

"Python"]>>>max(lt)'Python'>>>ls

=

ls

+

lt>>>print(ls)[1010,10.1,4112,'1010','10.10','Python']>>>min(ls)Traceback(mostrecentcalllast):File"<pyshell#15>",line1,in<module>min(ls)TypeError:'<'notsupportedbetweeninstancesof'str'and'float'列表的操作函數(shù)

list(x)將變量x轉(zhuǎn)變成列表類型,其中x可以是字符串類型,也可以是字典類型。>>>list("Python")['P','y','t','h','o','n']>>>list({"小明","小紅","小白","小新"})['小紅','小明','小新','小白']>>>list({"201801":"小明","201802":"小紅","201803":"小白"})['201801','201802','201803']6.2元組類型元組類型定義元組是序列類型的一種擴(kuò)展-元組是一種序列類型,一旦創(chuàng)建就不能被修改-

使用小括號(hào)()或tuple()創(chuàng)建,元素間用逗號(hào),分隔-可以使用或不使用小括號(hào)>>>

creature="cat","dog","tiger","human">>>

creature('cat','dog','tiger','human')>>>color=(0x001100,"blue",creature)>>>color(4352,'blue',('cat','dog','tiger','human'))元組類型定義元組類型操作元組繼承序列類型的全部通用操作-元組繼承了序列類型的全部通用操作-

元組因?yàn)閯?chuàng)建后不能修改,因此沒有特殊操作-使用或不使用小括號(hào)>>>creature="cat","dog","tiger","human">>>creature[::-1]('human','tiger','dog','cat')>>>color=(0x001100,"blue",creature)>>>color[-1][2]'tiger'元組類型操作訪問元組可以像訪問列表一樣,使用下標(biāo),切片,和for循環(huán)來(lái)訪問元組。>>>t=('a','b','c')>>>t[0] #訪問第一個(gè)元素

'a'>>>t=('a','b','c')>>>t[1:3]('b','c')35訪問元組元組運(yùn)算像列表一樣,元組也可以進(jìn)行加運(yùn)算,乘運(yùn)算,in運(yùn)算。>>>('a','b')+(1,2)#加運(yùn)算,得到一個(gè)新的元素('a','b',1,2)>>>>>>('a','b')*2#乘運(yùn)算,相當(dāng)于n個(gè)元素相加('a','b','a','b')>>>>>>('a','b')*-1#n小于等于0時(shí),得到一個(gè)空元組()>>>'a'in('a','b')#in運(yùn)算,判斷一個(gè)元素是否包含在元組中True>>>'a'notin('a','b')False36元組方法元組類型僅支持兩個(gè)方法:count方法:計(jì)算元組T中值為value的個(gè)數(shù)index方法:從元組T[start:stip]中查找第一個(gè)值為value的元素>>>t=['a','b','c','a']>>>t.count('a')2>>>t=['a','b','c']>>>t.index('b')#找到了,返回下標(biāo)1376.3字典類型映射類型概述

映射類型是“鍵-值”數(shù)據(jù)項(xiàng)的組合,每個(gè)元素是一個(gè)鍵值對(duì),即元素是(key,

value),元素之間是無(wú)序的。鍵值對(duì)是一種二元關(guān)系,源于屬性和值的映射關(guān)系映射類型概述

映射類型是序列類型的一種擴(kuò)展。在序列類型中,采用從0開始的正向遞增序號(hào)進(jìn)行具體元素值的索引。而映射類型則由用戶來(lái)定義序號(hào),即鍵,用其去索引具體的值。

鍵(key)表示一個(gè)屬性,也可以理解為一個(gè)類別或項(xiàng)目,值(value)是屬性的內(nèi)容,鍵值對(duì)刻畫了一個(gè)屬性和它的值。鍵值對(duì)將映射關(guān)系結(jié)構(gòu)化,用于存儲(chǔ)和表達(dá)。字典的定義

“鍵值對(duì)”是組織數(shù)據(jù)的一種重要方式,廣泛應(yīng)用在Web系統(tǒng)中。鍵值對(duì)的基本思想是將“值”信息關(guān)聯(lián)一個(gè)“鍵”信息,進(jìn)而通過鍵信息查找對(duì)應(yīng)值信息,這個(gè)過程叫映射。Python語(yǔ)言中通過字典類型實(shí)現(xiàn)映射。字典的定義

Python語(yǔ)言中的字典使用大括號(hào){}建立,每個(gè)元素是一個(gè)鍵值對(duì),使用方式如下:{<鍵1>:<值1>,

<鍵2>:<值2>,

…,

<鍵n>:<值n>}

其中,鍵和值通過冒號(hào)連接,不同鍵值對(duì)通過逗號(hào)隔開。字典類型也具有和集合類似的性質(zhì),即鍵值對(duì)之間沒有順序且不能重復(fù)。字典的定義

變量d可以看作是“學(xué)號(hào)”與“姓名”的映射關(guān)系。需要注意,字典各個(gè)元素并沒有順序之分。>>>d

=

{"201801":"小明","201802":"小紅","201803":"小白"}>>>print(d){'201801':'小明','201802':'小紅','201803':'小白'}字典的索引

列表類型采用元素順序的位置進(jìn)行索引。由于字典元素“鍵值對(duì)”中鍵是值的索引,因此,可以直接利用鍵值對(duì)關(guān)系索引元素。

字典中鍵值對(duì)的索引模式如下,采用中括號(hào)格式:<值>=<字典變量>[<鍵>]>>>d

=

{"201801":"小明","201802":"小紅","201803":"小白"}>>>print(d["201802"])小紅字典的索引

利用索引和賦值(=)配合,可以對(duì)字典中每個(gè)元素進(jìn)行修改。>>>d["201802"]

=

'新小紅'>>>print(d){'201801':'小明','201803':'小白','201802':'新小紅'}字典的索引

使用大括號(hào)可以創(chuàng)建字典。通過索引和賦值配合,可以向字典中增加元素。>>>t

=

{}>>>t["201804"]

=

"小新">>>print(t){'201804':'小新'}

字典是存儲(chǔ)可變數(shù)量鍵值對(duì)的數(shù)據(jù)結(jié)構(gòu),鍵和值可以是任意數(shù)據(jù)類型,通過鍵索引值,并可以通過鍵修改值。字典的操作函數(shù)

字典類型有一些通用的操作函數(shù)字典的操作函數(shù)

len(d)給出字典d的元素個(gè)數(shù),也稱為長(zhǎng)度。>>>d

=

{"201801":"小明","201802":"小紅","201803":"小白"}>>>len(d)3

min(d)和max(d)分別返回字典d中最小或最大索引值。>>>d

=

{"201801":"小明","201802":"小紅","201803":"小白"}>>>min(d)'201801'>>>max(d)'201803'字典的操作函數(shù)

dict()函數(shù)用于生成一個(gè)空字典,作用和{}一致。>>>d

=

dict()>>>print(d){}字典的操作方法

字典類型存在一些操作方法,使用語(yǔ)法形式是:<字典變量>.<方法名稱>(<方法參數(shù)>)字典的操作方法

d.keys()返回字典中的所有鍵信息,返回結(jié)果是Python的一種內(nèi)部數(shù)據(jù)類型dict_keys,專用于表示字典的鍵。如果希望更好的使用返回結(jié)果,可以將其轉(zhuǎn)換為列表類型。>>>d

=

{"201801":"小明","201802":"小紅","201803":"小白"}>>>d.keys()dict_keys(['201801','201802','201803'])>>>type(d.keys())<class'dict_keys'>>>>list(d.keys())['201801','201802','201803']字典的操作方法

d.values()返回字典中的所有值信息,返回結(jié)果是Python的一種內(nèi)部數(shù)據(jù)類型dict_values。如果希望更好的使用返回結(jié)果,可以將其轉(zhuǎn)換為列表類型。>>>d

=

{"201801":"小明","201802":"小紅","201803":"小白"}>>>d.values()dict_values(['小明','小紅','小白'])>>>type(d.values())<class'dict_values'>>>>list(d.values())['小明','小紅','小白']字典的操作方法

d.items()返回字典中的所有鍵值對(duì)信息,返回結(jié)果是Python的一種內(nèi)部數(shù)據(jù)類型dict_items。>>>d

=

{"201801":"小明","201802":"小紅","201803":"小白"}>>>d.items()dict_items([('201801','小明'),('201802','小紅'),('201803','小白')])>>>type(d.items())<class'dict_items'>>>>list(d.items())[('201801','小明'),('201802','小紅'),('201803','小白')]字典的操作方法

d.get(key,

default)根據(jù)鍵信息查找并返回值信息,如果key存在則返回相應(yīng)值,否則返回默認(rèn)值,第二個(gè)元素default可以省略,如果省略則默認(rèn)值為空。>>>d

=

{"201801":"小明","201802":"小紅","201803":"小白"}>>>d.get('201802')'小紅'>>>d.get('201804')>>>d.get('201804','不存在')'不存在'字典的操作方法

d.pop(key,

default)根據(jù)鍵信息查找并取出值信息,如果key存在則返回相應(yīng)值,否則返回默認(rèn)值,第二個(gè)元素default可以省略,如果省略則默認(rèn)值為空。相比d.get()方法,d.pop()在取出相應(yīng)值后,將從字典中刪除對(duì)應(yīng)的鍵值對(duì)。>>>d

=

{"201801":"小明","201802":"小紅","201803":"小白"}>>>d.pop('201802')'小紅'>>>print(d){'201801':'小明','201803':'小白'}>>>d.pop('201804','不存在')'不存在'字典的操作方法

d.popitem()隨機(jī)從字典中取出一個(gè)鍵值對(duì),以元組(key,value)形式返回。取出后從字典中刪除這個(gè)鍵值對(duì)。>>>d

=

{"201801":"小明","201802":"小紅","201803":"小白"}>>>print(d.popitem())('201803','小白')>>>d{'201801':'小明','201802':'小紅'}

d.clear()刪除字典中所有鍵值對(duì)。>>>d

=

{"201801":"小明","201802":"小紅","201803":"小白"}>>>d.clear()>>>print(d){}字典的操作方法

此外,如果希望刪除字典中某一個(gè)元素,可以使用Python保留字del。>>>d

=

{"201801":"小明","201802":"小紅","201803":"小白"}>>>del

d["201801"]>>>print(d){'201802':'小紅','201803':'小白'}

字典類型也支持保留字in,用來(lái)判斷一個(gè)鍵是否在字典中。如果在則返回True,否則返回False。>>>d

=

{"201801":"小明","201802":"小紅","201803":"小白"}>>>"201801"indTrue>>>"201804"indFalse字典的操作方法

與其他組合類型一樣,字典可以遍歷循環(huán)對(duì)其元素進(jìn)行遍歷,基本語(yǔ)法結(jié)構(gòu)如下:for

<變量名>

in

<字典名><語(yǔ)句塊>

for循環(huán)返回的變量名是字典的索引值。如果需要獲得鍵對(duì)應(yīng)的值,可以在語(yǔ)句塊中通過get()方法獲得。>>>d

=

{"201801":"小明","201802":"小紅","201803":"小白"}>>>for

k

in

d:print("字典的鍵和值分別是:{}和{}".format(k,

d.get(k)))字典的鍵和值分別是:201801和小明字典的鍵和值分別是:201802和小紅字典的鍵和值分別是:201803和小白6.4集合59集合類型概述

需要注意,由于集合元素是無(wú)序的,集合的打印效果與定義順序可以不一致。由于集合元

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論