一、替換列表中的元素:
當需要更改列表中某一元素的值時,我們改如何處理?
其實,我們只要遍歷一遍列表,對其中的每一個元素進行判斷,若該元素是想要更改的元素,則對其進行更改。
如下圖所示例子:
computers列表中,有很多的電腦品牌,我們要將列表中的“HUAWEI”替換成“Lenovo”,思路是遍歷此列表,找到
“HUAWEI”這個元素,通過下標或索引的方式將元素替換掉。
上面這種方式打印結果如下:
在替換列表中的元素時,很容易出現如下錯誤:即不是通過下標或索引的方式進行元素替換:
上圖打印的結果如下,並沒有將列表中的“HUAWEI”替換成“Lenovo”。因為computer值的改變,並沒有改變列表中的值。
二、刪除列表中的元素:
我們先看一種方式:
從代碼邏輯去看,似乎沒有問題,看看我們運行時的結果怎樣:
結果提示列表索引溢出。這是為什么呢?是因為沒刪除一個元素,列表的長度是變化的,那么computers[i]必然會超出
列表的索引范圍。必然,列表長度為5,那么i的值就是0 到 4,當列表中一個元素被刪除后,該列表長度變為4,當i的值
為4時,就超過了列表的索引范圍(因為被刪除一個元素后,列表的索引范圍為0到3)
那么,我們該如何去正確刪除列表的元素呢?或許我們可以通過while循環來實現,如下圖:
遍歷列表中的元素,若遍歷過程中元素為“mac”或“IBM”,則將其刪掉。當刪掉了該元素后,列表長度將要-1
此時不需要將i的值進行+1操作,因為刪掉后后面的元素索引將前移(即減1),程序必須還得從當前位置進
行判斷。
若遍歷過程中元素不包含“mac”或“IBM”,,則不刪除,i的值加1