Python列表(list)揖铜、元祖(tuple)茴丰、集合(set)达皿,和字典(dictionary)區(qū)別和聯(lián)系

? Python的基礎數(shù)據(jù)結(jié)構(gòu)有:列表(list), 元祖(tuple), 字典(dict), 字符串(string), 集合(set)等天吓,區(qū)別聯(lián)系如下:

數(shù)據(jù)類型 列表
(list)
元祖
(tuple)
集合
(set)
字典
(dictionary)
表示 [] () {} {}
舉例 a_list = [1, True, ‘a(chǎn)a’] a_tuple = (1, True, ‘a(chǎn)a’);<br> t2 = (1,) a_set = {1, True, ‘a(chǎn)a’};<br> s = set( [1, True, ‘a(chǎn)a’]) a_dict = {‘name’: ‘xuan’, ‘a(chǎn)ge’: 21}
是否有序 有序 有序 無序 無序
是否讀寫 讀寫 只讀 讀寫 讀寫 讀寫
定義 a_list = [] a_tuple = () a_set =set();<br>not_sure = {} 字典 a_dict = {}
元素可修改 a_list[0] = 23 a_dict[‘a(chǎn)ge’] = 30
下標訪問 a_list[0] = 23 a_tuple[0] a_dict[‘a(chǎn)ge’] = 30
添加元素 +、append、extend睡蟋、insert 不可添加 add黎侈、update a_dict[‘new_key’] = ‘value’
刪除元素 del、remove昼钻、pop()、pop(1)、clear 不可刪除 discard色解、remove、pop餐茵、clear pop科阎、popitem、clear
元素查找 index忿族、count锣笨、in in in a_dict[‘key’]
布爾真值 非空 非空 非空 非空
定義 列表(list)是有序的集合,可以存放不同數(shù)據(jù)類型的數(shù)據(jù)道批,并且list中的每個元素的都對應著一個索引來標記其位置错英,且索引從0開始。 tuplelist類似隆豹,不同之處在于tuple中的元素不能進行修改椭岩。而且tuple使用小括號()list使用方括號[]璃赡。 dic字典是另一種可變的容器模型判哥,且可存儲任意類型對象。字典的每個鍵值(key:value)對用冒號(:)分割鉴吹,每個對之間用逗號(,)分割姨伟,整個字典包括在花括號{} set()函數(shù)是創(chuàng)建一個無序不重復元素集,可添加豆励,刪除數(shù)據(jù)夺荒,還可以計算交集瞒渠、差集、并集等技扼。
python的集合類型和 其他語言類似, 是一個無序不重復元素集, 基本功能包括關(guān)系測試和消除重復元素.集合對象還支持union(聯(lián)合), intersection(交), difference(差)sysmmetricdifference(對稱差集)等數(shù)學運算,和我們初中數(shù)學學的集合的非常的相似伍玖。
一、列表list 剿吻、元祖-tuple窍箍、集合set、字典dic全方位分析
數(shù)據(jù)結(jié)構(gòu) 表示 分析
列表list [] 列表list丽旅,用中括號“[ ]”表示
1.任意對象的有序集合
列表是一組任意類型的值椰棘,按照一定順序組合而成的
2.通過偏移讀取
組成列表的值叫做元素(Elements)。每一個元素被標識一個索引榄笙,第一個索引是0邪狞,序列的功能都能實現(xiàn)
3.可變長度,異構(gòu)以及任意嵌套
列表中的元素可以是任意類型茅撞,甚至是列表類型帆卓,也就是說列表可以嵌套
4.可變的序列
支持索引、切片米丘、合并剑令、刪除等等操作,它們都是在原處進行修改列表
5.對象引用數(shù)組
列表可以當成普通的數(shù)組拄查,每當用到引用時吁津,Python總是會將這個引用指向一個對象,所以程序只需處理對象的操作靶累。當把一個對象賦給一個數(shù)據(jù)結(jié)構(gòu)元素或變量名時腺毫,Python總是會存儲對象的引用,而是對象的一個拷貝
元祖tuple ()
1.任意對象的有序集合
與列表相同
2.通過偏移存取
與列表相同
3.屬于不可變序列類型
類似于字符串挣柬,但元組是不可變的潮酒,不支持在列表中任何原處修改操作,不支持任何方法調(diào)用
4.固定長度邪蛔、異構(gòu)急黎、任意嵌套
固定長度即元組不可變,在不被拷貝的情況下長度固定侧到,其他同列表
5.對象引用的數(shù)組
與列表相似勃教,元祖是對象引用的數(shù)組>

tuplelist相比,元祖tuple有以下特點
1.比列表操作速度
2.對數(shù)據(jù)“寫保護
3.可用于字符串格式化中
4.可作為字典的key
字典dic {}
1.通過不是偏移量來讀取
字典就是一個關(guān)聯(lián)數(shù)組,是一個通過關(guān)鍵字索引的對象的集合匠抗,使用鍵-值(key-value)進行存儲故源,查找速度快

2.任意對象的無序集合
字典中的項沒有特定順序,以“鍵”為象征

3.可變長汞贸、異構(gòu)绳军、任意嵌套

同列表印机,嵌套可以包含列表和其他的字典等

4.屬于可變映射類型
因為是無序,故不能進行序列操作门驾,但可以在遠處修改射赛,通過鍵映射到值。字典是唯一內(nèi)置的映射類型(鍵映射到值的對象)

5.對象引用表
字典存儲的是對象引用奶是,拷貝楣责,和列表一樣。字典的key是不能變的聂沙,list不能作為key秆麸,字符串、元祖逐纬、整數(shù)都可以

diclist比較蛔屹,dict有以下幾個特點:
1.查找和插入的速度極削樊,不會隨著key的增加而增加
2.需要占用量的內(nèi)存豁生,內(nèi)存浪費多
而list相反
1.查找和插入的時間隨著元素的增加而增加
2.占用空間小,浪費內(nèi)存很少
所以漫贞,dict是用空間來換取時間的一種方法
集合 ()
1.是一組key的集合甸箱,但不存儲value,并且key不能重復

創(chuàng)建一個set迅脐,需要提供一個list作為輸入集合,s = set([1,2,3]),注意芍殖,傳入的參數(shù)[1, 2, 3] 是一個list,而顯示的set([1, 2, 3])只是告訴你這個set內(nèi)部有1谴蔑,2豌骏,3這3個元素,顯示的[ ]不表示這是一個list

2.重復元素在set自動被過濾

set可以看成數(shù)學意義上的無序無重復元素的集合隐锭,因此窃躲,兩個set可以做數(shù)學意義上的交集、并集等操作
還有一種集合是forzenset( )钦睡,是凍結(jié)的集合蒂窒,它是不可變的,存在哈希值荞怒,好處是它可以作為字典的key洒琢,也可以作為其它集合的元素。缺點是一旦創(chuàng)建便不能更改褐桌,沒有add衰抑,remove方法

setdict對比,集合set有以下特點

1.setdict的唯一區(qū)別僅在于沒有存儲對應的value
2.set原理dict一樣,同樣可以放入可變對象荧嵌,因為無法判斷兩個可變對象是否相等呛踊,也就無法保證set內(nèi)部“不會有重復元素”

二挖帘、字典dic、列表list恋技、集合set拇舀、元祖tuple相互比較

比較 詳情
字典dict和列表list的比較 dict的查找和插入的速度極,不會隨著key的增加而變慢蜻底。但是需要占用量的內(nèi)存骄崩,內(nèi)存浪費多。相反薄辅,list查找和插入的時間隨著元素的增加而增加要拂。但是占用空間小,浪費內(nèi)存很少站楚。
字典dict和集合set比較 唯一區(qū)別僅在于沒有存儲對應的value脱惰,但是,set的原理和dict一樣窿春,所以拉一,同樣不可以放入可變對象,因為無法判斷兩個可變對象是否相等旧乞,也就無法保證set內(nèi)部“不會有重復元素”蔚润。
元祖tuple與列表list比較 tuplelist 類似,不同之處在于tuple中的元素能進行修改尺栖。而且tuple使用小括號()嫡纠,list使用方括號[]
三延赌、Python一些內(nèi)置函數(shù)
編號 函數(shù) 注釋
1 cmp(A, B) 比較可為list除盏、tuple等的A、B挫以,A>B為1者蠕,A=B為0,小于為-1
2 len(obj) 計算元素個數(shù)屡贺。
3 max(obj) 返回元素最大值蠢棱。
4 min(obj) 返回元素最小值
5 reversed(obj) 對元素進行翻轉(zhuǎn)
6 enumerate(obj) 遍歷list的元素甩栈,返回序號及其對應的元素 forx泻仙,y in list
7 zip() 打包成tuple(元組),然后返回由這些tuples組成的list(列表)

? 列表[]量没、元組()和字符串都是序列玉转,字符串是字符的序列,列表和元祖任意類型的序列
注:本博主csdn同步鏈接

參考:

[1].python列表(list)殴蹄、元祖(tuple)究抓、集合(set)猾担,和字典(dictionary)的比較
[2].Python學習筆記(四)—列表(list)、元組(tuple)和字典(dictionary)刺下、集合(set)
[3].Python學習筆記(四)—列表(list)绑嘹、元組(tuple)和字典(dictionary)、集合(set)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末橘茉,一起剝皮案震驚了整個濱河市工腋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌畅卓,老刑警劉巖擅腰,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異翁潘,居然都是意外死亡趁冈,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門拜马,熙熙樓的掌柜王于貴愁眉苦臉地迎上來渗勘,“玉大人,你說我怎么就攤上這事一膨⊙叫希” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵豹绪,是天一觀的道長。 經(jīng)常有香客問我申眼,道長瞒津,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任括尸,我火速辦了婚禮巷蚪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘濒翻。我一直安慰自己屁柏,他們只是感情好,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布有送。 她就那樣靜靜地躺著淌喻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪雀摘。 梳的紋絲不亂的頭發(fā)上裸删,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機與錄音阵赠,去河邊找鬼涯塔。 笑死肌稻,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的匕荸。 我是一名探鬼主播爹谭,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼榛搔!你這毒婦竟也來了旦棉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤药薯,失蹤者是張志新(化名)和其女友劉穎绑洛,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體童本,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡真屯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了穷娱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绑蔫。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖泵额,靈堂內(nèi)的尸體忽然破棺而出配深,到底是詐尸還是另有隱情,我是刑警寧澤嫁盲,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布篓叶,位于F島的核電站,受9級特大地震影響羞秤,放射性物質(zhì)發(fā)生泄漏缸托。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一瘾蛋、第九天 我趴在偏房一處隱蔽的房頂上張望俐镐。 院中可真熱鬧,春花似錦哺哼、人聲如沸佩抹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽棍苹。三九已至,卻和暖如春甲葬,著一層夾襖步出監(jiān)牢的瞬間廊勃,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留坡垫,地道東北人梭灿。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像冰悠,于是被迫代替她去往敵國和親堡妒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

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