Python列表淨化時for與remove的使用

2021-08-21 20:28:29 字數 866 閱讀 9768

目標:去除列表中的奇數元素

以列表[4, 5, 5, 4]為例,第一次寫出的**如下:

def

purify

(lst):

for i in lst:

if i % 2 != 0:

lst.remove(i)

return lst

lst = [4, 5, 5, 4]

print(purify(lst))

得到的輸出為:

[4, 5, 4]
為何元素5沒有被去除?

這裡需要聯絡到for和remove的特性:

for中的i遍歷的是列表的索引(index),而remove直接移除列表中的這個值。

迴圈索引i列表

104[4, 5, 5, 4]21

5(被刪除)

[4, 5, 4]32

4(第二個5因為第乙個5被刪除而被跳過)

[4, 5, 4]

所以想要用remove直接解決淨化問題行不通。

經過思考之後,終於寫出了行之有效的**:

def

purify

(lst):

move =

for i in lst:

if i % 2 != 0:

for x in move:

lst.remove(x)

return lst

lst = [4, 5, 5, 4]

print(purify(lst))

執行結果為:

[4, 4]

WPF 列表虛擬化時的滾動方式

原文 wpf 列表虛擬化時的滾動方式 listbox的滾動方式 分為畫素滾動和列表項滾動 通過listbox的附加屬性scrollviewer.cancontentscroll來設定。因此listbox的預設模板中,含有scrollviewer,scrollviewer下存放列表內容 scrollv...

PYTHON 列表與元組

列表簡介 是一種內建的資料結構,用來儲存一系列的元素 同js一樣,由於解釋性語言不必宣告資料型別,所以陣列的元素也可以很靈或的不相同。列表的運算 index索引運算 切片運算 拼接運算 重複運算 成員運算in 長度運算len 迴圈for 列表方法 list.intex 可以返回任意的方法 my li...

python列表與元組

在python中,最基本的資料結構為序列 sequence 序列中的每個元素都有編號,即其位置或索引,其中第乙個元素的索引為0,第二個元素的索引 為1,依此類推。在有些程式語言中,從1開始給序列中的元素編號,但從0開始指出相對於序列 開頭的偏移量。這顯得更自然,同時可迴繞到序列末尾,用負索引表示序列...