本文實(shí)例講述了Python實(shí)現(xiàn)列表刪除重復(fù)元素的三種常用方法。分享給大家供大家參考,具體如下:
給定一個(gè)列表,要求刪除列表中重復(fù)元素。
listA = ['python','語','言','是','一','門','動(dòng)','態(tài)','語','言']
方法1,對(duì)列表調(diào)用排序,從末尾依次比較相鄰兩個(gè)元素,遇重復(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è)一臨時(shí)列表保存結(jié)果,從頭遍歷原列表,如臨時(shí)列表中沒有當(dāng)前元素則追加:
def deleteDuplicatedElementFromList2(list): resultList = [] for item in list: if not item in resultList: resultList.append(item) return resultList
方法3,利用python中集合元素惟一性特點(diǎn),將列表轉(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', '一', '動(dòng)', '態(tài)', '是', '言', '言', '語', '語', '門']#['python', '一', '動(dòng)', '態(tài)', '是', '言', '語', '門']print(deleteDuplicatedElementFromList2(listA))#['python', '語', '言', '是', '一', '門', '動(dòng)', '態(tài)']print(deleteDuplicatedElementFromList3(listA))#['python', '語', '言', '是', '一', '門', '動(dòng)', '態(tài)']
分析:
方法1,邏輯復(fù)雜,臨時(shí)變量保存值消耗內(nèi)存,返回結(jié)果破壞了原列表順序,效率最差
方法2,直接調(diào)用append方法原處修改列表,邏輯清晰,效率次之
方法3,極度簡(jiǎn)潔,使用python原生方法效率最高
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選