PYTHON pop remove 所犯的邏輯錯誤

2022-06-05 19:54:09 字數 1270 閱讀 4337

1.remove() 按值刪除:

num_list = [1, 2, 2, 2, 3]

for item in

num_list:

if item == 2:

num_list.remove(item)

print

(num_list)

num_list = [1, 2, 2, 2, 3]

for item in

num_list[:]:

if item == 2:

num_list.remove(item)

print(num_list)

#

結果:[1, 2, 3] #

留下乙個尾巴

[1, 3] #

乾乾淨淨

#這個num_list[:] 是產生乙個新的列表,我們在新列表遍歷,在舊的列表刪除。可以看下邊

>>> a = [1,2,3,4,5,6]

>>> b =a[:]

>>> a[0] = 1000

>>>b

[1, 2, 3, 4, 5, 6] #改變a後,b不改變

>>>a

[1000, 2, 3, 4, 5, 6] #但是a變了

>>>

2.pop():按照下標刪除

a = [1,2,3]

b = [4,5,6]

c =list(zip(a,b))

for i in

range(len(c)):

print("

本次的長度是:

",len(c))

print("

本次的i是:

",i)

c.pop(i)

#原因就在於其i一直增大,而本身i的範圍一直減小

本次的長度是: 3本次的i是: 0

本次的長度是: 2本次的i是: 1本次的長度是: 1本次的i是: 2traceback (most recent call last):

file

"c:/users/administrator/desktop/pop_ss.py

", line 8, in

c.pop(i)

indexerror: pop index out of range

>>>

shell指令碼的test 邏輯判斷易錯點

a etc 1.中括號兩邊要有空格 2.a和 e的區別 e能取反 a不能 str1 str2 中間等號不連線,表示判斷是否相等 連線表示賦值 str1 mage str2 cai str1 str2 echo str1 mage str2 mage str1 str2 echo 用萬用字元或正規表示...

那些年我所犯過的錯誤

0 引論 程式放下了很久,近來因各種原因需要拾起來,要靠程式設計混口飯吃,所以在做一些程式設計學習以及練習,下面記錄一些程式設計過程中遇到的錯誤,以警戒自己。以後碰到問題會時常更新這一篇。1 巨集定義 這個問題發生在編寫回溯演算法的八皇后問題上,當時對絕對值求取的定義出現了失誤,導致了嚴重的bug。...

我所犯的幾個愚蠢錯誤(一)

有些話,哪一篇部落格上也不會說的。可能是因為這些話實在是太愚蠢了,不值得一提,更不可能有人去這樣做。但是我恰恰成為了這個愚蠢的人。這些愚蠢事蹟應該好好記錄一下,吃一塹長一智。1 每乙個人只能夠登入一次,第二次登入的人會將第一次登陸人kick掉 2 如果這個人已經登陸了,需要提示第二次登入的人是否要繼...