python容器

1.列表

定義:是一種有序的集合幼苛,可以隨時(shí)添加和刪除其中的元素舶沿。

訪問方式:用索引來訪問配并,索引是從0開始。當(dāng)索引超出范圍時(shí)畸冲,會報(bào)IndexErr錯誤观腊。所以,要確保索引不要越界苫耸,記得最后一個元素的索引是len(classname)-1.如果要取最后一個元素儡陨,除了計(jì)算索引位置外,還可以用-1做索引迄委,list[1]直接獲取最后一個元素。

元素添加:在尾部添加 list.append

? ? ? ? ? ? ? ? ? 在指定位置添加:list.insert(1,要添加的數(shù)據(jù))

元素刪除:刪除尾部元素:list.pop()

? ? ? ? ? ? ? ? ? 刪除指定位置元素:list.pop(1)

替換元素:直接賦值給對應(yīng)的索引位置:list[1] ='替換值'

list內(nèi)再包含list:如:list[1,2,3,[1,2,3],4]

list常用函數(shù):

# append() 追加數(shù)據(jù)

# insert() 插入數(shù)據(jù)

# pop() ? ?移出數(shù)據(jù)

# clear() ?刪除列表所有元素

# copy() ? 拷貝列表

# count() ?獲取某元素出現(xiàn)的次數(shù)

# extend ? 擴(kuò)展列表,把

# index() ?獲取某個元素的索引

# remove() 移除列表中某個元素

# reverse()反向排序

# sort() ? 排序(升序、降序)

(1)初始化列表

li = [1, 2, 3, 'abc', 4.5, [2, 3, 4], {1:'one'}]

(2)獲取列表長度

print(len(li))

(3)根據(jù)索引讀寫

print(li[0])

print(li[3])

print(li[-1])

(4)添加元素

li = [1, 2, 3]

li.append('a')

li.append('b')

print(li)

li.append([4, 5, 6])

print(li)

li = [1, 2, 3]

li.extend([4, 5, 6])

print(li)

(5)刪除元素

li = [1, 2, 3, 4, 5]

li.pop()

print(li)

del(li[0])

del(li[1])

print(li)

(6)判斷元素是否在列表

li = [1, 2, 3, 4, 5]

print(1 in li)

print(6 in li)

(7)判斷列表是否為空

li = []

if not li:

print('Empty')

else:

print('Not empty')

(8)替換元素

s ='abcdefg'

li =list(s)

li[4] ='E'

li[5] ='F'

print(li)

s =''.join(li)

print(s)

(9)遍歷

li = [1, 2, 3]

for iin li:

print(i)

for iin range(len(li)):

print(li[i])

(10)列表的切片

print(li[2:5])

print(li[:4])

print(li[5:])

print(li[:])

print(li[0:6:2])

print(li[3::2])

print('')

# 負(fù)數(shù)索引和step

print(li[::-1])

print(li[::-2])

print(li[-6:-1:1])

print(li[-1::-1])

運(yùn)行結(jié)果


2.元組

定義:是一種有序的集合晃痴。但是tuple一旦初始化就不能修改,tuple沒有append(),insert()這樣的方法泣侮〗舫‘’

訪問方法:tuple[0],tuple[-1]

替換元素:不能復(fù)制成另外的元素

統(tǒng)計(jì)次數(shù):統(tǒng)計(jì)元組中某個元素出現(xiàn)的次數(shù)

result = tuple1.count(2)

print(result)

index() 獲取某個元素在元組中的第一個位置索引漏益,若有返回索引值,若沒有拋出異常

result = tuple1.index(1)

3.集合(set)

定義:集合中可以存儲任意類型的數(shù)據(jù)铜犬,集合中不會出現(xiàn)重復(fù)的數(shù)據(jù)轻庆。

添加元素:set1.add(要添加的數(shù)據(jù))

? ? ? ? ? ? ? ? ? ?set1.update()

刪除元素:set1.remove(要刪除的數(shù)據(jù))

集合中移出一個元素:set1.pop()

列表轉(zhuǎn)換為集合:list1 = [1,2,2,2,3,4,5]

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? t =set(list1)

集合轉(zhuǎn)換為列表:list2 = list(t)

列表轉(zhuǎn)換為元組:tuple1 = tuple(list2)

元組轉(zhuǎn)換為列表:list3 = list(tuple1)

(1)元組初始化

s_a =set([1, 2, 3, 4, 5])

s_b =set([1, 1, 2, 2, 3, 4, 5])

print(s_a)

print(s_b)

(2)獲取長度

print(len(s_a))

print(len(s_b))

(3)添加元素

s_a.add(6)

s_a.add(6)

s_a.update([5, 6, 7, 8, 9])

print(s_a)

(4)刪除元素

s_a.remove(8)

s_a.remove(9)

print(s_a)

(5)判斷元素是否存在

print(1 in s_a)

print(10 in s_a)

(6)判斷集合是否為空

s_a =set([])

if not s_a:

print('set is empty')

else:

print('set is not empty')

(7)遍歷

s_a =set([1, 2, 3, 4, 5])

for iin s_a:

print(i)

4.字典(dct)

定義:是一種可變?nèi)萜髂P陀啾铱纱鎯θ我忸愋蛯ο蟆?/p>

初始化:字典的每個鍵值key=>value對用冒號 :分割,每個鍵值對之間用逗號,分割呐粘,整個字典包括在花括號{}中转捕,格式如下

d = {key1 : value1, key2 : value2 }

優(yōu)點(diǎn):字典值可以沒有限制地取任何python對象五芝,既可以是標(biāo)準(zhǔn)的對象,也可以是用戶定義的沉删,但鍵不行醉途。

注:a.不允許同一個鍵出現(xiàn)兩次。創(chuàng)建時(shí)如果同一個鍵被賦值兩次殴穴,后一個值會被記住

b.鍵必須不可變,所以可以用數(shù)字劲够,字符串或元組充當(dāng)休傍,列表不行。

刪除所有元素

dict.clear()

復(fù)制字典

dict.copy()

創(chuàng)建字典

dict.fromkeys(seq[,val]) 以序列seq中元素做字典的鍵人柿,val為字典所有鍵對應(yīng)的初始值忙厌。

返回字典指定值

dict.get(key,default=None)

返回指定鍵的值,如果值不在字典中返回default值(根據(jù)key取出值,若key不存在扎阶,返回默認(rèn)值)

判斷鍵是否在字典中

dict.has_key(key)

如果鍵在字典dict里返回true东臀,否則返回

返回所有鍵和值

dict.items()

以列表返回可遍歷的(鍵,值)元組數(shù)組? 即獲取字典中所有的key,value,返回[(key,value)]

返回字典的鍵

dict.keys()

以列表返回一個字典所有的鍵(獲取字典所有的key)

獲取鍵值并自動添加鍵值

dict.setdefault(key,default=None)

和get()相似宰掉,但如果鍵不存在于字典中赁濒,將會添加鍵并將值設(shè)為default

更新字典

dict.update(dict2)

把字典dict2的鍵/值對更新到dict里

查詢字典中所有的值

dict.values()

以列表返回字典中的所有值(獲取字典所有的value)

刪除字典給定key所對應(yīng)的的值

pop(key[,default])

刪除字典給定鍵key所對應(yīng)的的值拒炎,返回值為被刪除的值。key值必須給出击你。否則丁侄,返回default值。根據(jù)key移出值石景。

隨機(jī)返回并刪除字典中的一對鍵和值。

popitem()

隨機(jī)返回并刪除字典中的一對鍵和值糙臼。 移出字典中某個key和值恩商,返回(key,value)

(1)初始化

d = {'a':1, 2:'b', 'c':3, 4:'d'}

print(d)

(2)獲取長度

print(len(d))

(3)根據(jù)key讀寫

d['a'] =100

d[4] ='dd'

print(d)

(4)添加元素

d['e'] =5

d[6] ='f'

print(d)

(5)刪除元素

d = {'a':1, 2:'b', 'c':3, 4:'d'}

del(d['a'])

del(d[2])

print(d)

(6)判斷key是否存在

d = {'a':1, 2:'b', 'c':3, 4:'d'}

if 'a' in d:

print('a in d')

if 2 in d:

print('2 in d')

if not ('x' in d):

print('x not in d')

(7)判斷字典是否為空

d = {}

if not d:

print('d is empty')

(8)遍歷

d = {'a':1, 2:'b', 'c':3, 4:'d'}

for kin d.keys():

print(str(k) +': ' +str(d[k]))

for k, vin d.items():

print(str(k) +': ' +str(v))

注:dict內(nèi)部存放的順序和key放入的順序是沒有關(guān)系的怠堪。和list比較,dict有以下幾個特點(diǎn):

1.查找和插入的速度極快凰棉,不會隨著key的增加而變慢陌粹;

2.需要占用大量的內(nèi)存掏秩,內(nèi)存浪費(fèi)多。

而list:

1.查找和插入的時(shí)間隨著元素的增加而增加映凳;

2.占用空間小邮破,浪費(fèi)內(nèi)存很少。

所以矫渔,dict是用空間來換取時(shí)間的一種方法摧莽。

注:set和dict的唯一區(qū)別僅在于沒有存儲對應(yīng)的value,但是范嘱,set的原理和dict一樣,所以叠聋,同樣不可以放入可變對象受裹,因?yàn)闊o法判斷兩個可變對象是否相等,也就無法保證set內(nèi)部“不會有重復(fù)元素“厦章。””

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市群发,隨后出現(xiàn)的幾起案子熟妓,更是在濱河造成了極大的恐慌,老刑警劉巖只恨,帶你破解...
    沈念sama閱讀 212,185評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抬虽,死亡現(xiàn)場離奇詭異斥赋,居然都是意外死亡产艾,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,445評論 3 385
  • 文/潘曉璐 我一進(jìn)店門隘膘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來弯菊,“玉大人踱阿,你說我怎么就攤上這事软舌。” “怎么了佛点?”我有些...
    開封第一講書人閱讀 157,684評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長阅虫。 經(jīng)常有香客問我不跟,道長躬拢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,564評論 1 284
  • 正文 為了忘掉前任工猜,我火速辦了婚禮菱蔬,結(jié)果婚禮上拴泌,老公的妹妹穿的比我還像新娘。我一直安慰自己箭昵,他們只是感情好回季,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,681評論 6 386
  • 文/花漫 我一把揭開白布泡一。 她就那樣靜靜地躺著,像睡著了一般鼻忠。 火紅的嫁衣襯著肌膚如雪帖蔓。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,874評論 1 290
  • 那天芥永,我揣著相機(jī)與錄音钝吮,去河邊找鬼。 笑死棘催,一個胖子當(dāng)著我的面吹牛醇坝,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播画畅,決...
    沈念sama閱讀 39,025評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼轴踱,長吁一口氣:“原來是場噩夢啊……” “哼谚赎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起雳灵,我...
    開封第一講書人閱讀 37,761評論 0 268
  • 序言:老撾萬榮一對情侶失蹤悯辙,失蹤者是張志新(化名)和其女友劉穎迎吵,沒想到半個月后钓觉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坚踩,經(jīng)...
    沈念sama閱讀 44,217評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瞬铸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,545評論 2 327
  • 正文 我和宋清朗相戀三年嗓节,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拦宣。...
    茶點(diǎn)故事閱讀 38,694評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖意推,靈堂內(nèi)的尸體忽然破棺而出珊蟀,到底是詐尸還是另有隱情育灸,我是刑警寧澤,帶...
    沈念sama閱讀 34,351評論 4 332
  • 正文 年R本政府宣布儿子,位于F島的核電站,受9級特大地震影響典徊,放射性物質(zhì)發(fā)生泄漏恩够。R本人自食惡果不足惜蜂桶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,988評論 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望腰湾。 院中可真熱鬧,春花似錦费坊、人聲如沸旬痹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,778評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽沼死。三九已至,卻和暖如春崔赌,著一層夾襖步出監(jiān)牢的瞬間意蛀,已是汗流浹背耸别。 一陣腳步聲響...
    開封第一講書人閱讀 32,007評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留县钥,地道東北人太雨。 一個月前我還...
    沈念sama閱讀 46,427評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像魁蒜,于是被迫代替她去往敵國和親囊扳。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,580評論 2 349

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