python循環刪除元素
Ⅰ 藍橋杯python之for循環(一)
1.如果我們想要某件事情重復執行具體次數的時候可以使用for循環。
2.for循環主要用來遍歷、循環、序列、集合、字典,文件、甚至是自定義類或函數。
使用for循環對列表進行遍歷元素、修改元素、刪除元素、統計列表中元素的個數。
for循環主要用來遍歷、循環、序列、集合、字典
結果演示:
apple
orange
banana
grape
for循環主要用來遍歷、循環、序列、集合、字典
把banana改為Apple
結果演示:['apple', 'orange', 'apple', 'grape']
結果演示:['apple', 'orange', 'grape']
統計apple的個數
結果演示:Fruits列表中apple的個數=2個
註:列表某一數據統計還可以使用Fruit.count(object)
結果演示:1 2... 10=362880
結果演示:
a
b
c
結果演示:
a
2
bc
結果演示:
朝辭白帝彩雲間,千里江陵一日還。
兩岸猿聲啼不住,輕舟已過萬重山。
9.遍歷字典
結果演示:
鍵---name
值---Kaina
鍵---age
值---22
Ⅱ Python中怎麼刪除裡面的元素,謝謝!
#coding:utf-8
defdelNum(a):
list=[]
foriina:
ifa.count(i)==1:
list.append(i)
returnlist
list=[3,1,2,6,3,9,3]
print(delNum(list))
結果:
[1, 2, 6, 9]
進程已結束,退出代碼0
Ⅲ Python為什麼不能用列表遍歷來刪除列表中的相同的元素呢
小編今天從項目引入這個天大的坑!!!
由於工作的需要,小編需要將舊表的數據遷移至新表,由於項目的需求要動態的創建表並遷移數據(表格用項目編號來區分,在模型類裡面封裝了創建表格的靜態方法), 這個靜態方法其實就是拼接sql語句。由於表格達到2000+,所以只好上線之前就遷移好數據和表格,小編花了將近一周的時間終於初見成效,但是其中有一塊耗費了小編一天的時間,那就是在數據遷移的時候,遇到了不同的舊表的重復數據的遷移。我需要去掉重復的數據,所以也就有了雙層的列表的遍歷,刪除相同數據的CNM天坑!也就是漏掉了數據,寫這個經歷不是為了什麼,只是把自己的經驗記下來,都是自己的寶貴財富。下面給大家介紹這個天坑:
look the demo:
lists = [1,2,3,4,5,6]
for list in lists:
lists.remove(list)
print(lists)
返回:[2, 4, 6]
解析:
1-問題:循環lists,想刪除lists的所有元素,但實際確有數據保留了下來,
2-原因:這是因為在循環lists,並刪除lists的元素時,列表的位置發生了移位,當刪除「1」後,第二個元素「2」補位,這樣「2」就躲過了被刪除的命運,輪到「3」了,「3」被刪除之後,「4」來補位,逃過一劫,以此類推!!
3-拓展:
(1)for循環是先判斷對象是否為可迭代對象,不是的話直接報錯,拋出TypeError異常,是的話,調用 __iter__或iter方法,返回一個迭代器
(2)不斷地調用迭代器的__next__或next方法,每次按序返回迭代器中的一個值
(3)迭代到最後,沒有更多元素了,就拋出異常 StopIteration,這個異常 python 自己會處理,不會暴露給開發者
4-所以在循環list時,不能循環的同時刪除自身元素,而是要利用pop(下標)的刪除。
Ⅳ python中it怎麼刪除1-3
1、列表刪除操作
五種方式分別為:
remove():一次刪除一個元素;如果列表內有重復元素則刪除第一個;元素不存在時拋出異常ValueError
pop():刪除一個指定的索引位置上的元素;指定索引不存在則拋出異常IndexError
切片:一次至少刪除一個元素
clear():清空列表
del:刪除列表
1.1 remove()
一次刪除一個元素;
如果列表內有重復元素則刪除第一個;
元素不存在時拋出異常ValueError。
代碼
lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print("原列表為:", lst)
lst.remove(5)
print("刪除後的列表為:", lst)
1
2
3
4
5
1
2
3
4
5
Ⅳ python從列表中刪除元素
有很多種方法都能實現從列表中刪除元素。
方法一:remove(具體的元素),該函數可以刪除列表中某個值的第一個匹配項。
方法二:使用pop(元素位置)來刪除,pop()還可以接著使用。
方法三:使用del關鍵字根據索引來刪除元素。
Ⅵ python批量刪除數據
列表中刪除元素主要分為以下 3 種場景:
根據目標元素所在位置的索引進行刪除,可以使用 del 關鍵字或者 pop() 方法;
根據元素本身的值進行刪除,可使用列表(list類型)提供的 remove() 方法;
將列表中所有元素全部刪除,可使用列表(list類型)提供的 clear() 方法。
Ⅶ python如何有多個重復元素刪除其中一個
如果你知道他的索引(index)
假設他的索引存在變數a中
列表名為list
list.pop(a)
當然,也可以用remove函數
但是,局限於只能刪第一個
比如:
a=[0,1,1,1,2,3,3]
a.remove(1)
print(a)
結果為:
[0, 1, 1, 2, 3, 3]
Ⅷ python 列表怎樣去掉一個元素
li = [1,2,3,4,5,6]x0dx0ax0dx0a# 1.使用del刪除對應下標的元素x0dx0adel li[2]x0dx0a# li = [1,2,4,5,6]x0dx0ax0dx0a# 2.使用.pop()刪除最後一個元素x0dx0ali.pop()x0dx0a# li = [1,2,4,5]x0dx0ax0dx0a# 3.刪除指定值的元素x0dx0ali.remove(4)x0dx0a# li = [1,2,5]x0dx0ax0dx0a# 4.使用切片來刪除x0dx0ali = li[:-1]x0dx0a# li = [1,2]x0dx0a# !!!切忌使用這個方法,如果li被作為參數傳入函數,x0dx0a# 那麼在函數內使用這種刪除方法,將不會改變原listx0dx0ax0dx0ali = [1,2,3,4,5,6]x0dx0adef delete(li, index):x0dx0ali = li[:index] + li[index+1:]x0dx0adelete(li, 3)x0dx0aprint lix0dx0a# 會輸出[1,2,3,4,5,6]
Ⅸ python數據刪除
1.刪除第一個匹配數據:
>>> a = [0, 2, 3, 2]
>>> a.remove(2)
>>> a
[0, 3, 2]
2.根據index刪除數據:
>>> a = [9, 8, 7, 6]
>>> del a[1]
>>> a
[9, 7, 6]
3.根據index刪除數據並返回該數據:
>>> a = [4, 3, 5]
>>> a.pop(1)
3
>>> a
[4, 5]
4. 在循環中刪除元素:
a = ["a", "b", "c", "d", "e"]
for item in a[:]:
print item
if item == "b":
a.remove(item)
Ⅹ python假如要除去L中所有是x的元素,要怎麼辦
Python中列表元素刪除
1.使用del命令刪除列表中的指定位置上的元素
l = [1, 2, 3, 4, 5]del l[2] #將下標為2的元素刪除print(l)#[1, 2, 4, 5]del l #將列表l刪除 此時再列印輸出就會報錯 因為這個列表沒有定義print(l)#NameError: name 'l' is not defined
[1, 2, 4, 5]
Traceback (most recent call last):
File "F:/pythonDemo/python代碼/生成隨機數並將奇數刪除.py", line 54, in <mole> print(l)
NameError: name 'l' is not defined
當要用del命令循環刪除元素時,應當倒序刪除
import randomdef deleteoddnumber(x): for i in range(len(x) - 1, 0, -1): # 循環倒序 if x[i] % 2 != 0: del x[i] return x
x = []while True: if len(x) == 20: break n = random.randint(1, 100) if n not in x:
x.append(n)print('刪除奇數元素前\n', x)
print('刪除奇數元素後\n', deleteoddnumber(x))
刪除奇數元素前 [24, 19, 71, 2, 83, 1, 6, 45, 29, 38, 78, 74, 46, 14, 93, 48, 100, 31, 25, 30]刪除奇數元素後 [24, 2, 6, 38, 78, 74, 46, 14, 48, 100, 30]
若是正序刪除 則會出現下標越界報錯
import randomdef deleteoddnumber(x): for i in range(len(x)):# 循環正序 if x[i] % 2 != 0: del (x[i]) return x
x = []while True: if len(x) == 20: break n = random.randint(1, 100) if n not in x:
x.append(n)print('刪除奇數元素前\n', x)print('刪除奇數元素後\n', deleteoddnumber(x))
刪除奇數元素前Traceback (most recent call last): [84, 93, 16, 40, 12, 98, 67, 97, 83, 39, 26, 25, 99, 19, 17, 62, 68, 43, 4, 47] File "F:/pythonDemo/python代碼/生成隨機數並將奇數刪除.py", line 15, in <mole> print('刪除奇數元素後\n', deleteoddnumber(x)) File "F:/pythonDemo/python代碼/生成隨機數並將奇數刪除.py", line 4, in deleteoddnumber if x[i] % 2 != 0:IndexError: list index out of range
會出現列表下標越界錯誤,
2.使用列表的pop()方法刪除並返回指定位置上的元素(默認為最後一個即pop(len(list)-1),刪除下標為index的元素可表示為pop(index))
下標index不可以超過列表范圍,否則拋出異常。
l = [1, 2, 3, 4, 5]print(l.pop(len(l)-1)) # 和l.pop()效果相同
print(l.pop(3))
54
3.使用列表對象的remove()方法刪除首次出現的指定元素,如果列表中不存在要刪除的元素,則拋出異常。
l = [1, 2, 3, 3, 4, 5]l.remove(1) #刪除元素值為1的元素l.remove(3) #刪除元素值為3的元素
print(l)
[2, 3, 4, 5]
值得注意的是,刪除的時候remove方法總是將第一個找到的元素進行刪除 而沒有把所有相同的元素值都給刪除。