日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

Python 循环列表删除元素的注意事项

發(fā)布時(shí)間:2025/3/20 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 循环列表删除元素的注意事项 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

錯(cuò)誤示范:

class Solution:def removeElement(self, nums, val: int) -> int:for i, num in enumerate(nums):print('i=', i, ', num=', num, ', nums=', nums)if num == val:nums.remove(val)return len(nums)s = Solution() s.removeElement([2, 0,1,2,2,3,0,4,2], 2) # i= 0 , num= 2 , nums= [2, 0, 1, 2, 2, 3, 0, 4, 2] # i= 1 , num= 1 , nums= [0, 1, 2, 2, 3, 0, 4, 2] # i= 2 , num= 2 , nums= [0, 1, 2, 2, 3, 0, 4, 2] # i= 3 , num= 3 , nums= [0, 1, 2, 3, 0, 4, 2] # i= 4 , num= 0 , nums= [0, 1, 2, 3, 0, 4, 2] # i= 5 , num= 4 , nums= [0, 1, 2, 3, 0, 4, 2] # i= 6 , num= 2 , nums= [0, 1, 2, 3, 0, 4, 2]

解決方式:

1.使用尾遞歸方式

class Solution:def removeElement(self, nums, val: int) -> int:for i, num in enumerate(nums[::-1]):print('i=', i, ', num=', num, ', nums=', nums)if num == val:nums.remove(val)return len(nums)s = Solution() s.removeElement([2, 0,1,2,2,3,0,4,2], 2) # i= 0 , num= 2 , nums= [2, 0, 1, 2, 2, 3, 0, 4, 2] # i= 1 , num= 4 , nums= [0, 1, 2, 2, 3, 0, 4, 2] # i= 2 , num= 0 , nums= [0, 1, 2, 2, 3, 0, 4, 2] # i= 3 , num= 3 , nums= [0, 1, 2, 2, 3, 0, 4, 2] # i= 4 , num= 2 , nums= [0, 1, 2, 2, 3, 0, 4, 2] # i= 5 , num= 2 , nums= [0, 1, 2, 3, 0, 4, 2] # i= 6 , num= 1 , nums= [0, 1, 3, 0, 4, 2] # i= 7 , num= 0 , nums= [0, 1, 3, 0, 4, 2] # i= 8 , num= 2 , nums= [0, 1, 3, 0, 4, 2]

2.使用 while 循環(huán)的方式

''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! ''' class Solution:def removeElement(self, nums, val: int) -> int:i = 0while i < len(nums):print('i=', i, ', num=', nums[i], ', nums=', nums)if nums[i] == val:nums.pop(i)else:i += 1return len(nums)s = Solution() s.removeElement([2, 0,1,2,2,3,0,4,2], 2) # i= 0 , num= 2 , nums= [2, 0, 1, 2, 2, 3, 0, 4, 2] # i= 0 , num= 0 , nums= [0, 1, 2, 2, 3, 0, 4, 2] # i= 1 , num= 1 , nums= [0, 1, 2, 2, 3, 0, 4, 2] # i= 2 , num= 2 , nums= [0, 1, 2, 2, 3, 0, 4, 2] # i= 2 , num= 2 , nums= [0, 1, 2, 3, 0, 4, 2] # i= 2 , num= 3 , nums= [0, 1, 3, 0, 4, 2] # i= 3 , num= 0 , nums= [0, 1, 3, 0, 4, 2] # i= 4 , num= 4 , nums= [0, 1, 3, 0, 4, 2] # i= 5 , num= 2 , nums= [0, 1, 3, 0, 4, 2]

3.對(duì)整個(gè)序列使用切片來創(chuàng)建一個(gè)臨時(shí)副本

class Solution:def removeElement(self, nums, val: int) -> int:for i, num in enumerate(nums[:]):print('i=', i, ', num=', num, ', nums=', nums)if num == val:nums.remove(val)return len(nums)s = Solution() s.removeElement([2, 0,1,2,2,3,0,4,2], 2) # i= 0 , num= 2 , nums= [2, 0, 1, 2, 2, 3, 0, 4, 2] # i= 1 , num= 0 , nums= [0, 1, 2, 2, 3, 0, 4, 2] # i= 2 , num= 1 , nums= [0, 1, 2, 2, 3, 0, 4, 2] # i= 3 , num= 2 , nums= [0, 1, 2, 2, 3, 0, 4, 2] # i= 4 , num= 2 , nums= [0, 1, 2, 3, 0, 4, 2] # i= 5 , num= 3 , nums= [0, 1, 3, 0, 4, 2] # i= 6 , num= 0 , nums= [0, 1, 3, 0, 4, 2] # i= 7 , num= 4 , nums= [0, 1, 3, 0, 4, 2] # i= 8 , num= 2 , nums= [0, 1, 3, 0, 4, 2] 與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的Python 循环列表删除元素的注意事项的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。