Python程式設計中可能要遇到的坑

2021-10-12 13:29:22 字數 920 閱讀 9117

lst =[1

,2,3

,4,5

,6]for i in lst:7)

/這樣寫法就會一直持續新增7

,因為每新增乙個,列表都會多乙個元素,就會一直迴圈下去一直加7

print

(lst)

li =[11

,22,33

,44]for e in li:

/直接從列表中迴圈

li.remove(e)

print

(li)

結果:

for的運⾏過程. 會有⼀個指標來記錄當前迴圈的元素是哪⼀個, ⼀開始這個指標指向第0 個.

然後獲取到第0個元素. 緊接著刪除第0個. 這個時候. 原來是第⼀個的元素會⾃動的變成 第0個.

然後指標向後移動⼀次, 指向1元素. 這時原來的1已經變成了0, 也就不會被刪除了.

用 del 或remove 會報錯,用 pop 會剩下 11和22,也不行

那怎樣才可以哪?

方法一:

li =[11

,22,33

,44]for i in

range

(len

(li)):

li.pop(

)print

(li)

方法二:

li =[1

,2,3

,4]lst = li[:]

for i in lst:

li.remove(i)

print

(li)

注意: 由於刪除元素會導致元素的索引改變, 所以容易出現問題. 盡量不要再迴圈中直接去刪除元素. 可以把要刪除的元素新增到另⼀個容器中然後再批量刪除.

關於c 中timer的使用可能要注意的

此問題由lor manari提出,謝謝!抱歉原始碼沒有注釋,初步學習timer後,想說明在使用timer中可能要注意的事項,歡迎大夥拍磚。1.注意函式timer elapsed的型別為static。2.在注意1的基礎上,atimer的宣告應在各函式外,且為static。using system us...

乙個設計師成長可能要經歷的五個階段

入門,這時候,他的腦子裡到處都是疑問,需要了解和掌握的太多,自己覺得很困頓並且勞累,而且始終伴隨著緊迫感和在乙個龐大的體系中迷失方向的失落感。這個階段不妨把它叫做迷失時代,迷失時代他最需要的是學習,盲目的給自己找定位是很危險的。經過一段時間的學習和積累,他對整個設計體系的感知逐漸清晰,各種流行的和不...

羅永浩開始賣拉桿箱,接下來可能要承包你的整個生活

錘子發布會就是特別,不發手機發周邊。昨天晚上,錘子科技又開年度發布會了。比較特別的是,這次的發布會不談手機,羅永浩轉身開始賣起了拉桿箱 加濕器 智慧型音箱。憑藉情懷打天下的老羅,在過去幾年靠著粉絲應援發布會門票,現場演繹單口相聲,讓錘子一路跌跌撞撞地走著。對於早前錘子陷入倒閉的傳聞,老羅在現場回應 ...