本文轉(zhuǎn)載自公眾號(hào):Excel知識(shí)管理,作者:愛(ài)上深呼吸李強(qiáng),。 本文主要記錄Python的基礎(chǔ)知識(shí),,這同樣是每一個(gè)Python用戶所要走過(guò)的必經(jīng)之路。任何一段復(fù)雜的Python代碼,,歸根結(jié)底都是由最簡(jiǎn)單的元素構(gòu)成,。只有夯實(shí)基礎(chǔ),方能輕松自如,。 01列表的概念
關(guān)于列表的三點(diǎn)說(shuō)明: 列表的構(gòu)造:英文狀態(tài)下的方括號(hào)[],元素存放在該方括號(hào)中,。元素不受任何限制,可以存放數(shù)值,、字符串及其他數(shù)據(jù)結(jié)構(gòu)的內(nèi)容,。 列表是一種序列,即每個(gè)列表元素按照順序存入,,都有屬于自己的位置即下標(biāo),。 列表是一種可變類(lèi)型的數(shù)據(jù)結(jié)構(gòu),即可以實(shí)現(xiàn)對(duì)列表的修改,,包括增加,、刪除和修改列表中的元素值。 注:通過(guò)索引(下標(biāo))可以獲取列表元素,,Python中的位置索引是從0開(kāi)始的,,即[0]代碼該列表中的第一個(gè)元素,[1]代表第二個(gè)元素,。
02列表四種常見(jiàn)索引方式 1.正向單索引
從左到右只獲取列表中的某一個(gè)元素,用[n]表示,。舉例:
注:
變量list1是一個(gè)含有7個(gè)元素的列表,,位置索引是從0開(kāi)始,以6結(jié)束,; 該列表包含字符串(用引號(hào)括起來(lái)),、數(shù)值和列表(嵌套列表); 本例中print(list1[6][1])兩層索引可以取出嵌套列表中的元素“體重72”,。
2.負(fù)向單索引 在正向單索引的基礎(chǔ)上添加一個(gè)負(fù)號(hào)“-”,,含義是從右向左的方向獲取元素,,可以用[-n]表示,例如: 適用情況:如果列表元素特別多,,而需要獲取的數(shù)據(jù)恰好是最后幾個(gè),,負(fù)向單索引將顯得尤為方便和簡(jiǎn)單,避免了從頭開(kāi)始數(shù)的麻煩,。 注:最后一個(gè)列表元素用[-1]表示,,不要寫(xiě)成[-0],初學(xué)者容易犯此錯(cuò)誤,。
3.切片索引 按照固定步長(zhǎng),,連續(xù)取出多個(gè)元素,用[start:end:step]表示,。 start指索取元素起始位置,, end指索取元素終止位置(end位置的元素是取不到的) step指索取元素步長(zhǎng)(默認(rèn)為1,表示逐個(gè)取出一連串的列表元素) 切片,,相當(dāng)于值域范圍,,左閉右開(kāi),例如[1,4)
注: list2[2:6]逐個(gè)獲取元素,,但無(wú)法取出list2[6],,也即'湖南'無(wú)法被取出; list2[1:6:2]從第二個(gè)元素即安徽開(kāi)始,,步長(zhǎng)為2,,隔元素返回; list2[-3:-1]中用到了前面的負(fù)向索引,,表示從倒數(shù)第三個(gè)開(kāi)始取,,取到倒數(shù)第一個(gè)(但不包含倒數(shù)第一個(gè)),所以最后結(jié)果無(wú)'湖北',。為解決這個(gè)問(wèn)題,,需要用到下面的無(wú)限索引。
4.無(wú)限索引 無(wú)限索引是在切片過(guò)程中不限定起始元素的位置或者終止元素的位置,,甚至起始和終止元素的位置都不限定,,可以用[::step]表示。第一個(gè)冒號(hào)是指從列表的第一個(gè)元素開(kāi)始獲??;第二個(gè)冒號(hào)是指到最后一個(gè)元素結(jié)束。注意,,這里與切片索引不同的是,,會(huì)包含最后一個(gè)元素值。例如:
注: 如需從頭開(kāi)始返回元素,,可以將切片中的start設(shè)置為冒號(hào)':',;
如需返回至結(jié)尾的元素,,可以將end設(shè)置為冒號(hào)':'; 若start和end均設(shè)置為冒號(hào),返回整個(gè)列表元素(等同于復(fù)制),,再通過(guò)step控制步長(zhǎng),,實(shí)現(xiàn)有規(guī)律地跳格取數(shù)。
03列表元素增加刪除,、修改 1.列表中增加元素 如果要往列表中增加元素,,可使用三種方法:append、extend和insert,。 append是列表特有的方法,,其他常見(jiàn)對(duì)象沒(méi)有。該方法是往列表尾部增加元素,,而且每次只能增加一個(gè)元素,。若要一次增加多個(gè)元素,則需使用extend方法,。
insert方法可以在列表的指定位置插入新值,,該方法需要傳遞兩個(gè)參數(shù):一個(gè)是索引(或下標(biāo))參數(shù),一個(gè)是具體插入的值(常量和列表均可,,若是列表則以嵌套列表的形式插入),。
2.列表中刪除元素 列表元素刪除有三種方法,分別是pop,、remove,、clear。 通過(guò)pop方法,,可以刪除列表元素兩種風(fēng)格,,一種是默認(rèn)刪除列表末尾元素,另一種是刪除指定位置列表元素,,而且都只能刪除一個(gè)元素,。
remove方法提供了刪除指定值的功能,但它只能刪除首次出現(xiàn)的指定值如果列表元素特別多,,通過(guò)pop方法刪除指定位置元素就顯得很笨拙,。因?yàn)槟阋愠鰟h除值的具體位置,這時(shí)使用remove方法就很方便,。
3.列表中修改元素 思想:取而改之,,先獲取錯(cuò)誤元素(索引),再通過(guò)正確值替換,,舉例: 4.其他操作:排序,、計(jì)數(shù)、查詢位置,、逆轉(zhuǎn) count方法用來(lái)對(duì)列表中的某個(gè)元素進(jìn)行計(jì)數(shù),,每次只能往count方法中傳遞一個(gè)值; reverse方法是將列表元素全部翻轉(zhuǎn),,[1,2,3]變成[3,2,1]; sort實(shí)現(xiàn)對(duì)列表元素排序,,默認(rèn)是升序;若將reverse參數(shù)設(shè)置為T(mén)rue,,進(jìn)而調(diào)整為降序,。 注:sort方法只能對(duì)同質(zhì)數(shù)據(jù)進(jìn)行排序,即列表元素統(tǒng)一都是數(shù)值型或字符型,,不可以混合多種數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)類(lèi)型,。
04元組的概念 1.元組與列表類(lèi)似,三點(diǎn)說(shuō)明如下:
元組通過(guò)英文狀態(tài)下的圓括號(hào)()構(gòu)成,,其存放的元素與列表一樣,,可以是不同的數(shù)值類(lèi)型,也可以是不同的數(shù)據(jù)結(jié)構(gòu),。 元組仍然是一種序列,,所以幾種獲取列表元素的索引方法同樣可以使用到元組對(duì)象中; 與列表最大的區(qū)別:元組不再是一種可變類(lèi)型的數(shù)據(jù)結(jié)構(gòu),。
2.元組兩種可用的'方法':count和index 由于元組只是存儲(chǔ)數(shù)據(jù)的不可變?nèi)萜?,其只有這兩種可用的方法,舉例: 05字典 字典是非常常用的一種數(shù)據(jù)結(jié)構(gòu),,它與json格式的數(shù)據(jù)非常相似,,核心就是以鍵值對(duì)的形式存儲(chǔ)數(shù)據(jù),四點(diǎn)說(shuō)明如下:
構(gòu)造字典對(duì)象需要使用大括號(hào){ }表示,,每一個(gè)字典元素都是以鍵值對(duì)的形式存在,,并且鍵值對(duì)之間用英文狀態(tài)下的冒號(hào)隔開(kāi),即key:value; 鍵在字典中是唯一的,,不能有重復(fù),。對(duì)于字符型的鍵需要用引號(hào)引起來(lái)。值可以是單個(gè)值,,也可以是多個(gè)值構(gòu)成的列表,、元組和字典; 字典不再是序列,,無(wú)法通過(guò)位置索引完成元素值的獲取,,只能通過(guò)鍵索引實(shí)現(xiàn),。 字典與列表一樣,都是可變類(lèi)型的數(shù)據(jù)結(jié)構(gòu),。
1.字典鍵索引獲取元素值 通過(guò)'年齡'索引,,獲取了元素值33;
'子女'對(duì)應(yīng)的值也是字典,,屬于嵌套字典,,故需要雙重鍵索引來(lái)獲取兒子的姓名;
鍵'興趣'對(duì)應(yīng)的值是列表,,'游泳'這個(gè)值只能通過(guò)先鎖定字典的鍵,,再鎖定列表元素的位置才能獲得。
2.字典的可變性-增加元素 增加字典元素有如下三種方式,,分別是setdefault方法,、update方法和鍵索引方法: 以上分別用這三種方法,為字典增加了'戶籍',、'學(xué)歷',、'身高'。 setdefault方法接受兩個(gè)參數(shù),,第一個(gè)參數(shù)為字典的鍵,,第二個(gè)參數(shù)是鍵對(duì)應(yīng)的值; update可以更新字典,,可以修改元素和增加元素,;與setdefault方法不同的是該方法接受的是一個(gè)字典對(duì)象; 鍵索引:如果原字典中沒(méi)有指定的鍵,,就往字典中增加元素,;否則,起到修改字典元素的功能,。
3.字典的可變性-刪除元素 刪除字典元素用pop,、popitem和clear三種方法。
pop方法:如果不給其傳遞值,,則表示刪除列表末尾的一個(gè)元素,,否則就刪除指定下標(biāo)的一個(gè)元素,但是字典中pop方法必須指定需要?jiǎng)h除的鍵,,否則就會(huì)引起語(yǔ)法錯(cuò)誤,;如果需要?jiǎng)h除嵌套字典中的某個(gè)鍵,就必須先通過(guò)索引取出對(duì)應(yīng)的字典,,然后使用pop方法完成嵌套字典元素的刪除,;
popitem方法:不需傳遞任何值,可刪除字典中任意的某個(gè)元素;
clear方法:干凈利落地清空字典中的所有元素,。
4.字典的可變性-修改元素 兩種方法:update方法和鍵索引方法(同增加元素中)
注:如果字典中的值是另一個(gè)字典或列表,,需要先通過(guò)鍵索引實(shí)現(xiàn)字典元素的查詢,,然后在查詢的基礎(chǔ)上應(yīng)用對(duì)應(yīng)的修改方法即可(如update方法或“取而代之”的方法)
其他方法:get,、keys、values ,、items get方法的功能與鍵索引一致,,可以從字典中取出鍵對(duì)應(yīng)的值。所不同的是如果某個(gè)鍵在字典中不存在,,應(yīng)用鍵索引的方法會(huì)產(chǎn)生“鍵錯(cuò)誤”的信息,;而get方法不會(huì)報(bào)錯(cuò),也就不會(huì)影響其他腳本的正常執(zhí)行,。
keys,、values和items方法分別取出字典中的所有鍵、值,、和鍵值對(duì),。
列表、元組,、字典三種數(shù)據(jù)結(jié)構(gòu)總結(jié)
|