python列表删除重复元素的三种⽅法给定⼀个列表,要求删除列表中重复元素。
listA = ['python','语','⾔','是','⼀','门','动','态','语','⾔']
⽅法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:
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)
sortedlist执⾏结果:
print(deleteDuplicatedElementFromList(listA))
#sorted list:['python', '⼀', '动', '态', '是', '⾔', '⾔', '语', '语', '门']
#['python', '⼀', '动', '态', '是', '⾔', '语', '门']
print(deleteDuplicatedElementFromList2(listA))
#['python', '语', '⾔', '是', '⼀', '门', '动', '态']
print(deleteDuplicatedElementFromList3(listA))
#['python', '语', '⾔', '是', '⼀', '门', '动', '态']
分析:
⽅法1,逻辑复杂,临时变量保存值消耗内存,返回结果破坏了原列表顺序,效率最差
⽅法2,直接调⽤append⽅法原处修改列表,逻辑清晰,效率次之
⽅法3,极度简洁,使⽤python原⽣⽅法效率最⾼

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。