今天學(xué)的是修改、添加和刪除列表中的元素咏瑟。
python大大的圖
我的圖
1.修改列表元素
修改列表元素的語法與訪問列表元素的語法類似饱溢。要修改列表元素帅刊,可指定列表名和要修改的元素的索引窟她,再指定該元素的新值陈症。motorcycles[0]="chinaM"就代表把第0個元素由honda改為chinaM。其中礁苗,0是索引,chinaM是新值徙缴。
如想要不僅僅修改第一個元素的值试伙,而是修改任意元素的值,比如修改前兩個元素的值
這邊其實賦多個新值的時候有中括號和沒有中括號是一樣的
把第五行改為有中括號的于样,也可以得到原結(jié)果疏叨。甚至,把中括號改成大括號或者小括號都沒有影響穿剖。但是蚤蔓,列表定義的時候是一定要使用中括號的。
下面來一點非正常用法
(1)用兩個元素合并為一個元素來代替一個元素
(2)用兩個元素不合并來代替一個元素糊余,即修改了一個元素的同時又添加了一個元素
(3)把一個字符串拆為多個字符秀又,作為多個元素來替代一個元素
2.在列表中添加元素
用方法append()可在列表末尾添加元素。當(dāng)然也可以動態(tài)創(chuàng)建列表贬芥,先建立一個空列表吐辙,再用append()往里加元素。這個內(nèi)容在昨天的簡書里寫過蘸劈。
方法insert()可在列表的任何位置添加新元素昏苏。為此,你需要指定新元素的索引和值威沫。motorcycles.insert(0, 'honda')既可以理解為在開頭插入了一個值贤惯,也可以理解為將列表中每一個元素都右移一位。這么想來棒掠,我們也可以讓列表在任意位置處右移任意位數(shù)孵构。比如我想讓列表從第二個元素開始右移兩位。
3.從列表中刪除元素
如果知道元素在列表中的位置烟很,可使用del語句浦译。del motorcycles[1]就刪除了列表中的第二個元素,這也可以理解為列表從第三個元素開始左移一位溯职。使用del可刪除任何位置處的列表元素精盅,條件是知道其索引。使用del語句將值從列表中刪除后谜酒,你就無法再訪問它了叹俏。我們刪除的值是chinaM,可是當(dāng)我們再想訪問這個值的時候已經(jīng)無法訪問了僻族,在它的位置上的新值是yamaha粘驰。
有時候屡谐,你需要將元素從列表中刪除并讓你能夠接著使用它,這時候就需要用到pop()蝌数。術(shù)語彈出pop()源自這樣的類比:列表就像一個棧愕掏,而刪除列表末尾的元素相當(dāng)于彈出棧頂元素。我們可以這么理解棧(這個是學(xué)大學(xué)計算機的時候老師在課上舉的例子):現(xiàn)在我們手上有一根一端封口的空心長管子顶伞,它叫做棧饵撑。我們要往里面放乒乓球把這個長管子堆滿,這些乒乓球是棧內(nèi)元素唆貌。先放進去的乒乓球都被后放進去的乒乓球堵在里面滑潘,當(dāng)我們要取乒乓球的時候,最先取出的是最后放進去的那個球锨咙,最后放進去的那個球叫做棧頂元素语卤。相對應(yīng)的,最先放進去的那個元素叫做棧底元素酪刀。因此粹舵,棧有一個特性,叫做先進后出骂倘。popm=motorcycles.pop()說的是把列表motorcycles的棧頂元素(也就是最后一個元素)彈出齐婴,放在popm里。這時候列表motorcycles就變成了缺少了最后一個元素的列表稠茂。
popm=motorcycles.pop(1)說的是把第二個元素彈出柠偶,存放在popm里。由于這一句話是在上一句話的基礎(chǔ)上執(zhí)行的睬关,因此motorcycles這個列表與彈出操作前相比诱担,是在缺少最后一個元素的基礎(chǔ)上又缺少了第二個元素。
有時候电爹,你不知道要從列表中刪除的值所處的位置蔫仙。如果你只知道要刪除的元素的值,可以使用方法remove()丐箩。使用remove()從列表中刪除元素時摇邦,也可以接著使用它的值。只不過使用被刪除的值時的寫法與pop()不同屎勘。pop()的括號里寫的是索引施籍,remove()的括號里是元素。這里需要注意的是概漱,remove()只刪除第一個指定的值丑慎。
如果要刪除的值在列表中出現(xiàn)多次,就需要用循環(huán)來判斷是否刪除了所有這樣的值。
這么寫可以得到我們要的結(jié)果竿裂,但是刪完了我們不需要的元素以后循環(huán)并不會停下來玉吁,它會報錯,說列表里沒有這個元素了腻异,我干不了活了进副。這時候需要一個if語句,不讓程序報錯悔常。