python列表中刪除重復(fù)元素的三種方法
給定一個列表,要求刪除列表中重復(fù)元素。
listA = ['python','語','言','是','一','門','動','態(tài)','語','言']
方法1
對列表調(diào)用排序,從末尾依次比較相鄰兩個元素,遇重復(fù)元素則刪除,否則指針左移一位重復(fù)上述過程:
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
設(shè)一臨時列表保存結(jié)果,從頭遍歷原列表,如臨時列表中沒有當(dāng)前元素則追加:
def deleteDuplicatedElementFromList2(list):
resultList = []
for item in list:
if not item in resultList:
resultList.append(item)
return resultList
方法3
利用python中集合元素惟一性特點,將列表轉(zhuǎn)為集合,將轉(zhuǎn)為列表返回:
def deleteDuplicatedElementFromList3(listA):
#return list(set(listA))
return sorted(set(listA), key = listA.index)
執(zhí)行結(jié)果:
print(deleteDuplicatedElementFromList(listA)) #sorted list:['python', '一', '動', '態(tài)', '是', '言', '言', '語', '語', '門'] #['python', '一', '動', '態(tài)', '是', '言', '語', '門'] #學(xué)習(xí)中遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流群:531509025 print(deleteDuplicatedElementFromList2(listA)) #['python', '語', '言', '是', '一', '門', '動', '態(tài)'] print(deleteDuplicatedElementFromList3(listA)) #['python', '語', '言', '是', '一', '門', '動', '態(tài)']
總結(jié):
方法1,邏輯復(fù)雜,臨時變量保存值消耗內(nèi)存,返回結(jié)果破壞了原列表順序,效率最差
方法2,直接調(diào)用append方法原處修改列表,邏輯清晰,效率次之
方法3,極度簡潔,使用python原生方法效率最高
到此這篇關(guān)于python列表中刪除重復(fù)元素的三種方法的文章就介紹到這了,更多相關(guān)python列表刪除重復(fù)元素內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python神經(jīng)網(wǎng)絡(luò)使用tensorflow構(gòu)建長短時記憶LSTM
這篇文章主要為大家介紹了python機器學(xué)習(xí)tensorflow構(gòu)建長短時記憶網(wǎng)絡(luò)LSTM,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
Python語言實現(xiàn)獲取主機名根據(jù)端口殺死進(jìn)程
這篇文章主要介紹了Python語言實現(xiàn)獲取主機名根據(jù)端口殺死進(jìn)程的相關(guān)資料,需要的朋友可以參考下2016-03-03
Python?+?Streamlit項目部署方案超詳細(xì)教程(非Docker版)
Streamlit是一款強大的Python框架,專為機器學(xué)習(xí)及數(shù)據(jù)可視化打造,這篇文章主要介紹了Python?+?Streamlit項目部署方案(非Docker版)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-11-11
python爬蟲開發(fā)之使用Python爬蟲庫requests多線程抓取貓眼電影TOP100實例
這篇文章主要介紹了python爬蟲開發(fā)之使用Python爬蟲庫requests多線程抓取貓眼電影TOP100實例,需要的朋友可以參考下2020-03-03
如何用Python?實現(xiàn)景區(qū)安防系統(tǒng)
本設(shè)計中,利用YOLO目標(biāo)檢測算法、Openpose姿態(tài)識別算法、deepsort跟蹤算法、MSCNN人群密度估計算法實現(xiàn)了火災(zāi)監(jiān)測、吸煙監(jiān)測、行為安全監(jiān)測、人群密度監(jiān)測、口罩率監(jiān)測、人員定位監(jiān)測六大功能,對Python?實現(xiàn)景區(qū)安防系統(tǒng)感興趣的朋友一起看看吧2022-07-07
基于Python第三方插件實現(xiàn)西游記章節(jié)標(biāo)注漢語拼音的方法

