Python實現列表刪除重複元素的三種常用方法分析

2022-09-28 06:33:09 字數 1564 閱讀 4394

給定乙個列表,要求刪除列表中重複元素。

lista = ['python','語','言','是','lwxzrzpcpe一','門','動','態','語','言']

方法1,對列表呼叫排序,從末尾依次比較相鄰兩個元素,遇重複元素則刪除,否則指標左移一位重複上述過程:

def deleteduplicatedelementfromlist(list):

list.sort();

print("sorted list:%s" % list)

length = len(list)

lastitem = list[length - 1]

程式設計客棧 for i in range(length - 2,-1,-1):

currentitem = list[i]

if currentitem == lastitem:

list.remove(currentitem)

else:

lastitem = currentitem

return list

方法2,設一臨時列表儲存結果,從頭遍歷原列表,如臨時列表中沒有當前元素則追加:

def deleteduplicatedelementfromlist2(list):

resultlist =

for item in list:

if not item in resultlist:

resultlist.append(item)

return resultlist

方法3,利用python中集合元素惟一性特點,將列表轉為集合,將轉為列表返回:

def deleteduplicatedelementfromlist3(lista):

#return list(set(lista))

return sorted(set(lista), key = lista.index)

執行結果:

print(deleteduplicatedelementfromlist(lista))

#sorted list:['python', '一', '動', '態', '是', '言', '言', '語', '語', '門程式設計客棧']

#['python', '一', '動', '態', '是', '言', '語', '門']

print(deleteduplicatedelementfromlist2(lista))

#['python', '語', '言', '是', '一', '門', '動', '態']

print(deleteduplicatedelementfromlist3(lista))

#['python', '語', '言', '是', 'lwxzrzpcpe一', '門', '動', '態']

分析:方法1,邏輯複雜,臨時變數儲存值消耗記憶體,返回結果破壞了原列表順序,效率最差

方法2,直接呼叫append方法原處修改列表,邏輯清晰,效率次之

方法3,極度簡潔,使用python原生方法效率最高

ps:這裡再為大家提供幾款去重複工具供大家參考使用:

**去除重複項工具:

**文字去重複工具:

python list列表中刪除多個重複元素

我們以下面這個list為例,刪除其中所有值為6的元素 l 9,6 5,6 6,7 8,9 6,0 首先嘗試remove方法 l.remove 6 print l 結果為 9,5,6,6,7,8,9,6,0 只刪除了第乙個為6的元素。如果採用for迴圈遍歷各元素 for x in l if x 6 l...

python 去除列表重複元素

1.1邏輯去除 推薦面試使用 def dedup list li 定義乙個列表去重的函式 定義乙個空列表用於接收不重複的列表元素 dedup li list 定義乙個相關變數,用於下標的判斷 index 0 相同的任意個元素,用列表的index方法只能取到第乙個重複元素的下標 遍歷列表,同時每取到乙...

python 去除列表重複元素

比較容易記憶的是用內建的 setl1 b c d b c a a l2 list set l1 print l2 還有一種據說速度更快的,沒測試過兩者的速度差別 l1 b c d b c a a l2 fromkeys l1 keys print l2 這兩種都有個缺點,祛除重複元素後排序變了 a ...