當前位置:首頁 » 編程語言 » python去除元素

python去除元素

發布時間: 2023-09-10 00:00:59

A. python 去除列表中重復的元素

這個有幾種方法來完成,但是對於不可哈希的數據來說,BIF set() 是無效的,會報錯,下面介紹幾種方法

對於以上4種方法,各有利弊,一般來說是方法2最快,方法1和方法3比較類似,但是方法3可以保持列表中的排序和之前的一樣,但是開頭也說了,這樣無法對不可哈希的對象進行去重復,比如列表中的元素還是列表,這種情況下就只能用方法4了,但是方法4的缺點就是比較的慢。

B. python數組中怎樣刪除符合條件的元素

使用filter來實現,以python3為例,如果刪除列表中的所有0,則可使用下面代碼實現:

a=[1,2,0,3,4,0,5,0,6]
b=filter(lambdax:x!=0,a)
list(b)

效果如下:

註:如果使用python2則直接輸出b即可,在python3中filter返回結果為可迭代的對象,需使用list轉換成列表。

C. 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方法總是將第一個找到的元素進行刪除 而沒有把所有相同的元素值都給刪除。

D. Python 中刪除列表元素的三種方法

列表基本上是 Python 中最常用的數據結構之一了,並且刪除操作也是經常使用的。

那到底有哪些方法可以刪除列表中的元素呢?這篇文章就來總結一下。

一共有三種方法,分別是 remove , pop 和 del ,下面來詳細說明。

remove 是從列表中刪除指定的元素,參數是 value。

舉個例子:

需要注意, remove 方法沒有返回值,而且如果刪除的元素不在列表中的話,會發生報錯。

pop 是刪除指定索引位置的元素,參數是 index。如果不指定索引,默認刪除列表最後一個元素。

pop 方法是有返回值的,如果刪除索引超出列表范圍也會報錯。

del 一般用在字典比較多,不過也可以用在列表上。

直接傳元素值是不行的,會報錯:

del 還可以刪除整個列表:

以上就是本文的全部內容,如果覺得還不錯的話,歡迎 點贊 轉發 關注 ,感謝支持。

推薦閱讀:

E. Python基礎實戰之集合元素的添加和刪除

集合元素的添加操作有兩種方法:

1、調用add()方法,一次添加一個元素

2、調用update()方法,至少添加一個元素

------------------------------

s={10,20,40,80}

s.add(30) #一次添加一個元素

print(s) #{10,30,20,40,80}

s.updae({200,300,400}) #一次至少添加一個元素

print(s) #{200,10,300,20,400,30,80,40}

s.update([800,900]) #可以添加列表

s.update((45,55)) #可以添加元組

print(s) #{200,5510,45,300,800,20,900,400,30,80,40}

------------------------------

集合元素的刪除操作

1、調用remove()方法,一次刪除一個指定元素,如果指定的元素不存在拋出KeyError

2、調用discard()方法,一次刪除一個指定元素,如果指定的元素不存在不拋異常

3、調用pop()方法,一次只刪除一個任意元素

4、調用clear()方法,清空集合

------------------------------

s.remove(200) #一次刪除一個指定元素,如果指定的元素不存在拋出KeyError

print(s) #{55,10,45,300,800,20,900,400,30,80,40}

s.discard(900) #一次刪除一個指定元素,如果指定的元素不存在不拋異常

print(s) #{55,10,45,300,800,20,400,30,80,40}

s.pop() #刪除誰不知道,任意一個元素

print(s) #{55,10,45,800,20,400,30,80,40}

s.clear() #清空集合中的所有元素

print(s) #set()

F. python list如何去除某個元素

1.使用remove方法,例如:
a=["aa","bb"]
a.remove("aa")
#["bb"]
2.使用pop方法,數字為索引從0開始.例如:
a=["aa","bb","cc"]
a.pop(1)
#["aa","cc"]

G. python如何刪除列表中的元素

刪除所有的元素用clear()方法

  • Remove all items:clear()

    刪除指定位置用pop

  • Remove an item by index and get its value:pop()

    通過值來刪除

  • Remove an item by value:remove()

    通過index來刪除

  • Remove items by index or slice:del

H. python如何刪除list里重復的元素

一共使用四種方法來去除列表中的重復元素,下面是具體實現:

def f1(seq):

# not order preserving

set = {}

map(set.__setitem__, seq, [])

return set.keys()

def f2(seq):

# order preserving

checked = []

for e in seq:

if e not in checked:

checked.append(e)

return checked

def f3(seq):

# Not order preserving

keys = {}

for e in seq:

keys[e] = 1

return keys.keys()

def f4(seq):

# order preserving

noDupes = []

[noDupes.append(i) for i in seq if not noDupes.count(i)]

return noDupes

def f5(seq, idfun=None):

# order preserving

if idfun is None:

def idfun(x): return x

seen = {}

result = []

for item in seq:

marker = idfun(item)

# in old Python versions:

# if seen.has_key(marker)

# but in new ones:

if marker in seen: continue

seen[marker] = 1

result.append(item)

return result

def f6(seq):

# Not order preserving

set = Set(seq)

return list(set)

熱點內容
滑板鞋腳本視頻 發布:2025-02-02 09:48:54 瀏覽:432
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:557
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:743
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:537
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:146
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:235
java駝峰 發布:2025-02-02 09:13:26 瀏覽:651
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:538
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726