python的五種數(shù)據(jù)結(jié)構(gòu)

Python有四種數(shù)據(jù)結(jié)構(gòu)适揉,這里再加上字符串窖剑,所以共有五種:

字符串(string)斗蒋、列表(list)捌斧、元組(tuple)、字典(dictionary)和集合(set)泉沾。

加上字符串是因?yàn)樗c其它數(shù)據(jù)結(jié)構(gòu)有些相似的地方捞蚂,放進(jìn)來一起講比較方便。

一跷究、定義方法

字符串用引號

例如:name='Swaroop'

列表用方括號

例如:shoplist=['apple','mango','carrot','banana']

元組用圓括號

例如:zoo=('python','elephant','penguin')

但元組在定義時姓迅,也可以不用括號,例如:

Number=1,2,3,4,5

特別地揭朝,如果元組中只有一個元素队贱,它后面需要一個逗號

例如:aNumber=1,

當(dāng)用print輸出時色冀,元組有圓括號潭袱,所以,用圓括號括住是常規(guī)狀態(tài)锋恬。

字典用花括號

例如:ab={

'Swaroop':'swaroop@swaroopch.com',

'Larry':'larry@wall.org',

'Matsumoto':'matz@ruby-lang.org',

'Spammer':'spammer@hotmail.com'

}

字典的每個元素有兩個成份:鍵值和值屯换。在定義時要成對地指定鍵值與值(前面的是鍵值,后一個是值)。

每一對之中用冒號隔開彤悔,各對用逗號隔開嘉抓。

集合用set()方法

這是與前面的數(shù)據(jù)結(jié)構(gòu)都不一樣的地方。

例如:bri = set(['brazil', 'russia', 'india'])

注意參數(shù)的形式跟列表一樣晕窑。

二抑片、分類

1 可變與不可變

列表、字典和集合是可變的杨赤。它們的元素可以修改敞斋,可以添加、刪除元素疾牲。

字符串和元組是不可變的植捎,里面的元素不可以修改,也不可以添加阳柔、刪除元素焰枢。

2 序列與非序列

列表、元組和字符串是序列舌剂。

序列同時具有三個特點(diǎn):

(1)in和not in運(yùn)算符測試元素資格(在與不在)济锄。

(2)有索引操作,可以直接獲取序列中的元素霍转。

(3)有切片操作拟淮,取序列中的一部分。

字典和集合不是序列谴忧。

字典和集合都有(1)很泊,但沒有(2)和(3)

三、訪問元素的方法

序列可以用數(shù)字下標(biāo)訪問元素沾谓,非序列不可以用這種方法委造。

字典,用鍵值訪問值均驶,例如:ab['Swaroop']昏兆。

集合不可以訪問到里面的元素。

四妇穴、刪除

1 都可以整體刪除爬虱,用del

2 列表、字典和集合都可以刪除其中的元素腾它,字符串和元組不可以跑筝。

(1)列表用del刪除元素,例如:del shoplist[0]

(2)字典用del刪除元素瞒滴,例如:del ab[’Spammer’]

(3)集合用remove方法曲梗,例如:bri.remove(’India’)

五赞警、添加成員

元組和字符串不可變,所以不能添加成員虏两。

1 列表愧旦,用append()方法

例:shoplist.append('rice')

2 字典,直接輸入

例:ab['Guido']='guido@python.org'#添加成員

3 集合定罢,用add()方法

例:bric.add('china')

六笤虫、都可以用print方法整體輸出

1 字符串顯示內(nèi)容,沒有引號

2 列表要顯示方括號

3 元組要顯示圓括號

4 字典要顯示花括號

5 集合要顯示花括號(注意它定義時祖凫,參數(shù)用的是方括號)

七耕皮、賦予變量和產(chǎn)生副本

1 字符串名如果賦予另一個變量,會產(chǎn)生一個副本蝙场。沒有兩個變量指向同一個字符串的情況凌停。

2 元組名賦予另一個變量,會產(chǎn)生一個副本售滤。沒有兩個變量指向同一個元組的情況罚拟。

3 列表名賦予一個變量,則它們指向同一個列表完箩,并沒有產(chǎn)生新的列表赐俗。也就是說,這個列表有了兩個名字弊知。

要產(chǎn)生副本阻逮,使用切片操作。例如:

s=shoplist[:]

4 字典名賦予另一個變量秩彤,它們指向同一個字典叔扼。要產(chǎn)生副本,使用copy()方法漫雷。例如:

a=ab.copy()

5 集合名賦予另一個變量瓜富,它們指向同一個集合。要產(chǎn)生副本降盹,使用copy()方法与柑。例如:

b=bri.copy()

八、元素個數(shù)都用方法len()

九蓄坏、遍歷

五種數(shù)據(jù)結(jié)構(gòu)都可以使用遍歷价捧,方法類似。

注意字典的一個元素有兩個成分涡戳。

for item in shoplist:#shoplist是一個列表

print(item,end=' ')

for item in zoo:#zoo是一個元組

print(item,end=' ')

for item in name:#name是一個字符串

print(item,end=' ')

for n,a in ab.items():#name是一個字典

print('Contact {} at {}'.format(n,a))

for x in bri:#bri是一個集合

Print(x)

十结蟋、切片運(yùn)算(序列具有)

參數(shù)用方括號表達(dá)一個區(qū)間。

1 完整參數(shù)

方括號里面有三個數(shù)值妹蔽,用冒號隔開椎眯。

第一、二個是下標(biāo)胳岂,給出一個左閉右開的區(qū)間编整,即從第一個下標(biāo)開始,到第二個下標(biāo)的前一個終止乳丰。

例如[1:3]的意義是1掌测,2。

第三個數(shù)值的意義是步長产园,省略了就是1汞斧。例如[1:3]相當(dāng)于[1:3:1]。

2 省略

方括號里面還可以省略到一個數(shù)值和沒有數(shù)值什燕,但冒號必不可少粘勒。

一個數(shù)值的例子:[2:],意義是從下標(biāo)2到最后屎即,步長為1庙睡。

沒有數(shù)值的例子:[:],意義是全部技俐,步長為1乘陪。

3 步長的正負(fù)及與區(qū)間方向的配合

步長可以為正,也可以為負(fù)雕擂。為正表示從下標(biāo)從小到大啡邑,為負(fù)表示從大到小。前面兩個數(shù)值也表達(dá)了方向井赌,這兩個必須一致谤逼,否則沒有結(jié)果。

例如,[1:3]是1仇穗,2森缠,而[1:3:-1]則沒有結(jié)果。因?yàn)榍懊媸菑男〉酱笠歉祝介L表達(dá)是從大到小贵涵,寫成[3:1]就有結(jié)果,為3恰画。

4 負(fù)下標(biāo)

-1宾茂,是最后一個元素(0是最前面一個)

負(fù)的下標(biāo),是從后面向前推進(jìn)拴还。

例如:

name=’Swaroop’

則name[-1]為p,name[1:-1]為waroo

十一跨晴、排序

列表用sort()方法,沒有任何參數(shù)時是升序片林。

例如:

shoplist.sort()#升序

shoplist.sort(reverse=True)#降序

當(dāng)然可以用reverse=False表示升序端盆,但沒有必要怀骤。

字符串和元組因?yàn)椴豢筛淖儯淮嬖谂判虻膯栴}焕妙。

集合沒有順序蒋伦,字典用其它方法排序。

十二焚鹊、連接運(yùn)算

用字符串的join()方法

以下痕届,定義字符串delimiter='_*_'

1 列表

例:

mylist=['Brazil','Russia','India','China']

print(delimiter.join(mylist))

結(jié)果:

Brazil_*_Russia_*_India_*_China

2 元組

例:

zoo=('python','elephant','penguin')

print(delimiter.join(zoo))

結(jié)果:

python_*_elephant_*_penguin

3 字符串

例:

name='swaroop'

print(delimiter.join(name))

結(jié)果:

s_*_w_*_a_*_r_*_o_*_o_*_p

4 字典

把鍵值連接起來,跟值無關(guān)末患。

例:

ab={

'Swaroop':'swaroop@swaroopch.com',

'Larry':'larry@wall.org',

'Matsumoto':'matz@ruby-lang.org',

'Spammer':'spammer@hotmail.com'

}

print(delimiter.join(ab))

結(jié)果:

Swaroop_*_Larry_*_Matsumoto_*_Spammer

5 集合

例:

bri = set(['brazil', 'russia', 'india'])

print(delimiter.join(bri))

結(jié)果:

india_*_brazil_*_russia

十三研叫、其它

1 元組在定義時,如果只有一個元素璧针,由其后要用逗號

例如:singleton = 2,? 或:singleton=(2,)

2 元組在定義時嚷炉,可以用其它元組作元素

例如:

zoo=('python','elephant','penguin')

New_zoo='monkey','canmel',zoo

3 集合有判別超集的方法

例:print('bri是否為bric的超集:',bri.issuperset(bric))

4 集合的與運(yùn)算

例:print('bri與bric重合的元素為:',bri & bric)

這個運(yùn)算可以用intersection()方法代替:bri.intersection(bric)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市探橱,隨后出現(xiàn)的幾起案子渤昌,更是在濱河造成了極大的恐慌,老刑警劉巖走搁,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件独柑,死亡現(xiàn)場離奇詭異,居然都是意外死亡私植,警方通過查閱死者的電腦和手機(jī)忌栅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來曲稼,“玉大人索绪,你說我怎么就攤上這事∑肚模” “怎么了瑞驱?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長窄坦。 經(jīng)常有香客問我唤反,道長,這世上最難降的妖魔是什么鸭津? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任彤侍,我火速辦了婚禮,結(jié)果婚禮上逆趋,老公的妹妹穿的比我還像新娘盏阶。我一直安慰自己,他們只是感情好闻书,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布名斟。 她就那樣靜靜地躺著脑慧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪砰盐。 梳的紋絲不亂的頭發(fā)上闷袒,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天,我揣著相機(jī)與錄音楞卡,去河邊找鬼霜运。 笑死脾歇,一個胖子當(dāng)著我的面吹牛蒋腮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播藕各,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼池摧,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了激况?” 一聲冷哼從身側(cè)響起作彤,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎乌逐,沒想到半個月后竭讳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡浙踢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年绢慢,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片洛波。...
    茶點(diǎn)故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡胰舆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蹬挤,到底是詐尸還是另有隱情缚窿,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布焰扳,位于F島的核電站倦零,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏吨悍。R本人自食惡果不足惜光绕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望畜份。 院中可真熱鬧诞帐,春花似錦、人聲如沸爆雹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至慧起,卻和暖如春菇晃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蚓挤。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工磺送, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人灿意。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓估灿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親缤剧。 傳聞我的和親對象是個殘疾皇子馅袁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內(nèi)容