1. 程式人生 > >Python3迴圈刪除列表中的資料

Python3迴圈刪除列表中的資料

由於刪除列表中的資料後,列表長度會發生變化,因此Python在迴圈刪除列表中的資料時經常發生索引溢位錯誤,如:

a=[1,3,7,3,2,5]
for i in range(len(a)):
    if a[i]<3:
        del a[i]
print(a)

產生IndexError: list index out of range

可採用倒序遍歷來解決此問題:

a=[1,3,7,3,2,5]
for i in range(len(a)-1,-1,-1):
    if a[i]<3:
        del a[i]
print(a)

輸出:[3, 7, 3, 5]

相關推薦

Python3迴圈刪除列表資料

由於刪除列表中的資料後,列表長度會發生變化,因此Python在迴圈刪除列表中的資料時經常發生索引溢位錯誤,如: a=[1,3,7,3,2,5] for i in range(len(a)): if a[i]<3: del a[i]

Python3基礎 list 使用for循環 刪除列表的重復項

for list hub googl tps 開源 ubun latest rule ? python : 3.7.0 OS : Ubuntu 18.04.1 LTS

Python 刪除列表的重複資料

list0=['b','c', 'd','b','c','a','a']   方法1:使用set() list1=sorted(set(list0),key=list0.index) # sorted output print( list1) 方法

for迴圈刪除List資料產生的問題

在應用中大家可能會碰到一些場景 比如 一個listview 刪除選中條目 這需要去查詢選中項並移除 但是list 集合 座標會前移 所以第二次刪除的時候就會有找不到的清空也就是空指標或者其他問題

JAVA迭代列表資料時的幾種迴圈寫法

1.for迴圈 for(int i=0;i<list.size;i++) 2.foreach: for(Object obj:list)這是一種簡潔的寫法,只能對列表進行讀取,無法修改 3.while int size =list.size(); while(

Java迭代列表資料時幾種迴圈寫法的效率比較

Java中經常會用到迭代列表資料的情況,本文針對幾種常用的寫法進行效率比較。雖然網上已經有了類似的文章,但是對他們的結論並不認同。 常見的實現方法: 1.for迴圈: for(int i = 0; i < list.size(); i++) for(int i =

在for迴圈遍歷列表的過程不能刪除列表的元素

在刷題的時候碰到一件很有意思的事,就是在Python中用迴圈遍歷列表中元素的時候,感覺還是按照下標進行訪問的,這時如果刪除掉了已經遍歷到的元素的時候,那麼刪除元素之後的列表的下標會重新排序,但是迴圈還是按照迴圈開始的時候列表的下標進行訪問的,這時會導致有些元素訪

Oracle刪除資料的時候應該注意的問題 Oracle與MySql他們一些表之間的區別

1. 刪除表的注意事項 在刪除一個表中的全部資料時,須使用TRUNCATE TABLE 表名;因為用DROP TABLE,DELETE * FROM 表名時,TABLESPACE表空間該表的佔用空間並未釋放,反覆幾次DROP,DELETE操作後,該TABLESPACE上百兆的空間就被耗光了。

Python 如何優雅的刪除列表的重複元素

假定有一個需求:需要刪除列表中的重複元素,有幾種實現方法? 方法一:利用Python 集合的特性 去除重複元素,程式碼如下: list1 = [1,3,5,7,9,7,4,3,6,1] #將列表強制轉換為集合,再轉換回列表形式 list1=list(set(list1)) print(list1)

迴圈刪除多條資料,先拼接字串,再拆分成一個一個

1.前臺拼接需要刪除的ID字串 //刪除流程模板 delFlowModel: function () { var that = modObj; var

Java迴圈刪除List元素

Java中迴圈刪除List中元素 寫在開頭:最近在處理一個包裝類時候,把Mapper查詢到的資料暫存到了ArrayList中,後續做迴圈遍歷刪除操作的時候,當時採用了foreach迴圈,結果彈出了ConcurrentModificationException錯誤。於是乎就在部落格上找

Javascript迴圈刪除陣列元素的幾種方法示例

發現問題 大家在碼程式碼的過程中,經常會遇到在迴圈中移除指定元素的需求。按照常規的思路,直接一個for迴圈,然後在迴圈裡面來個if判斷,在判斷中刪除掉指定元素即可。但是實際情況往往不會像預想的那樣順利執行。 下面以一段Javascript程式碼為例演示這一過程。

mysql在把子查詢結果作為刪除資料的條件,mysql不允許在子查詢的同時刪除原表資料

** 目標表和原表一致 MYSQL不支援如此操作 資料庫不能邊查詢邊刪除 ** delete from push_msg_overview where id in ( select id from push_msg_overview where pus

迴圈刪除程式碼^M的shell指令碼

#! /bin/bash #echo “start……” #define a function to read all the files in the folder function readfile(){ for file in ls $1 do if [

Mysql清空表(truncate)與刪除資料(delete)的區別

truncate table 表名; delete * from 表名; 其中truncate操作中的table可以省略,delete操作中的*可以省略。這兩者都是將表中資料清空,不過也是有區別的,如下: truncate是整體刪除(速度較快), delet

Oracle_不刪除資料,修改表中欄位型別

資料庫表名稱為:TX_Separateout 現想將TX_Separateout 中的Comcode欄位由原來的number型別修改為varchar2(20) –修改一個欄位的型別 alter tabl

Python(36)_迴圈列印列表列表

#-*-coding:utf-8-*- ''' 列印列表,遇到列表中的列表也迴圈列印 ''' li = [1,2,3,[1,2,3,5,6],'hjaha'] lie = [] #print(type(li[0])) #print(type(li)) for i in li: if

python 刪除列表元素

1. del 刪除列表中指定位置上的元素 l = [1,2,3,4,5] del l[2]  -> [1,2,4,5] del l  -> 刪除整個列表 當要用del迴圈刪除元素時,應當倒序刪除,否則下標會發生變化; 2. pop 刪除並返回指定位置上的元素 l

python小練習2:刪除列表重複的元素

題目:刪除列表中重複的元素 如果列表中有重複的元素,我們想要刪除重複的,應該怎麼做呢?有好多種方法,這裡先總結三種方法 1.while 迴圈 li = [1,2,3,4,5,2,1,3,4,

on_delete=models.CASCADE 級聯刪除 多對一關係使用刪除主表資料,從表跟著刪除

經過篩查,在建立多對一的關係的,需要在Foreign的第二引數中加入on_delete=models.CASCADE 主外關係鍵中,級聯刪除,也就是當刪除主表的資料時候從表中的資料也隨著一起刪除 這是資料庫外來鍵定義的一個可選項,用來設定當主鍵表中的被參考列的資料發生變化時,外來鍵表中響