Python实现列表删除重复元素的三种常用方法分析
本文详细解析Python中删除列表重复元素的三种常用方法。通过排序后逆向比较、临时列表追加以及利用集合唯一性转换,分别展示了不同实现逻辑。文章对比了各方法在代码复杂度、内存消耗及执行效率上的差异,并附带完整代码示例与结果分析,帮助开发者根据实际需求选择最优方案。
本文通过具体实例,深入剖析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:
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集合(set)元素唯一的特性。将原始列表转换为集合以自动去除重复项,随后再将处理后的集合转换回列表并返回。
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', '语', '言', '是', '一', '门', '动', '态']
对三种方法的性能与逻辑进行综合评估:
方法1的逻辑相对复杂,需要维护临时变量来保存当前比较值,这会额外消耗内存空间。此外,排序操作会改变原列表的顺序,且删除操作涉及元素移动,整体效率最低。 方法2直接调用append方法在原列表基础上进行修改(或构建新列表),逻辑直观清晰,执行效率处于中等水平。 方法3代码最为简洁,直接调用Python内置的集合转换功能,执行效率最高。
此外,这里推荐几款在线去重工具供读者在实际工作中使用:
在线去除重复项工具: http://tools.jb51.net/code/quchong
在线文本去重复工具: http://tools.jb51.net/aideddesign/txt_quchong
若需进一步了解Python相关操作技巧,建议查阅本站专题:《Python列表(list)操作技巧总结》、《Python数组操作技巧总结》、《Python字符串操作技巧汇总》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python数据结构与算法教程》。
希望本文提供的分析与代码示例能对读者的Python程序设计工作有所帮助。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













