当前位置:网络安全 > 从 Python 列表中删除重复元素的三种方法

从 Python 列表中删除重复元素的三种方法

  • 发布:2023-10-10 10:53

-->

给定一个列表,要求删除列表中的重复元素。

listA = ['python','yu','yan','is','一','men','action','state','yu','yan']

方法一,对列表调用排序,比较尾部相邻的两个元素,删除重复元素,否则将指针左移一位,重复上面的过程:

def deleteDuplicatedElementFromList(list):
list.sort();
print("排序列表:%s" % 列表)
长度 = len(列表)
最后一项 = 列表[长度 - 1]
对于范围内的 i(长度 - 2,-1,-1):
当前项目 = 列表[i]
如果当前项目 == 最后一个项目:
list.remove(currentItem)
其他:
最后一个项目 = 当前项目
返回列表

方法2,设置一个临时列表保存结果,从头开始遍历原列表,如果临时列表中没有当前元素,则追加:

def deleteDuplicatedElementFromList2(list):
结果列表 = []
对于列表中的项目:
如果结果列表中没有项目:
resultList.append(item)
返回结果列表

方法3,利用Python中集合元素的唯一性,将列表转换为集合,并返回转换后的列表:

def deleteDuplicateElementFromList3(listA):
#返回列表(set(listA))
返回已排序(set(listA), key = listA.index)

执行结果:

打印(从列表中删除重复元素(listA))
#排序列表:['python', '一', '动态', 'state', 'yes', 'yan', 'yan', '语言', '语言', 'men']
#['python', '一', '动态', '状态', '是', '言', '语言', '门'] 打印(从List2删除重复元素(listA))
#['python', '语言', '言', '是', '一', '人', '行动', '状态'] 打印(从List3删除重复元素(listA))
#['python', '语言', '言', '是', '一', '门', '动作', '状态']

分析:

方法一,逻辑复杂,保存临时变量的值消耗内存,而且返回结果破坏了原列表的顺序,效率最差
方法二,直接调用append方法修改列表到位,逻辑清晰,效率第二
方法3,极其简洁,使用python原生方法效率最高

-->

相关文章

最新资讯