python list 中 remove 的騷操作/易錯點

在過去的某一天(2019.3.19),有個學弟問了一個關於python list中的一個問題:

比如我們已知一個列表 [3,4,5,6,5,4,3]
我們想刪除第一個爲3的元素。

我們嘗試瞭如下幾種方式:

In [1]: print [3,4,5,6,5,4,3].remove(3)
None

In [2]: list = [3,4,5,6,5,4,3]

In [3]: print list.remove(3)
None

In [4]: list.remove(3)

In [5]: print list
[4, 5, 6, 5, 4]

結果如下:

remove

爲什麼會有上述的結果呢?

list.remove(3) 會默認刪除第一個爲3的元素,直接通過 print 打印的是 remove 函數的默認的返回值,而 remove 函數默認有個初始值爲 None ,你需要先執行覆蓋的命令,再去打印。

理解的一個難點就是 函數執行的先後順序 ,這一點可能很多朋友會忽略的一個問題,就像自動販賣機一樣,你得要先投幣,系統確認收款後再讓你指定的物品掉落,從而完成這樣一筆交易。

想要得到 被刪除指定元素後的列表 也是如此,你得要先刪除,再去打印出來,程序設計的思路亦或若此。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章