python对字符进行函数运算的方法 python对字符串去重
Python列表去重推荐使用list(dict.fromkeys(lst))保留顺序,1.用set()去重但不保序;2.dict.fromkeys()保序且高效;3.列表推导式集适合复杂逻辑;4.不可哈希元素可转元处理组。

Python中对列表元素去重有多种方法,根据是否需要保留原有顺序以及数据类型的不同,可以选择合适的方式。1. 使用set()(不保留顺序)
最简单的方法可以将列表转换为集合,再转回列表。但注意:这会丢失原始顺序。lst = [1, 3, 2, 2, 4, 3, 5]unique_lst = list(set(lst))print(unique_lst) # 输出顺序可能不同,如 [1, 2, 3, 4, 5]登录后复制
适用场景:只关心唯一值,不关心顺序时使用。2. 使用dict.fromkeys()(保留顺序)
从Python 3.7起,字典保留插入顺序,因此可用此方法高效重去并保留顺序。
立即学习“Python免费学习笔记(深入)”;lst = [1, 3, 2, 2, 4, 3, 5]unique_lst = list(dict.fromkeys(lst))print(unique_lst) # 输出: [1, 3, 2, 4, 5]登录后复制
推荐方式:这是目前最简洁且保留顺序去重的方法。腾讯智影
腾讯推出的在线智能视频创作平台250查看详情3.使用列表推导式辅助集合(保留顺序,灵活控制)
如果需要更复杂的判断逻辑,可以用操作方式手动维护已见元素。lst = [1, 3, 2, 2, 4, 3, 5]看到 = set()unique_lst = [x for x in lst if not (x in saw or saw.add(x))]print(unique_lst) # 输出:[1, 3, 2, 4, 5]登录后复制
利用seen.add(x)返回None的特性,实现一行判断与记录。
4. 对不可哈希元素去重(如预见列表)
若列表中包含列表等不可哈希类型,不能用set或dict方法。可转换为元组后续处理。lst = [[1, 2], [2, 3], [1, 2], [3, 4]]seen = set()unique_lst = []for item in lst: tup = tuple(item) if tup not in saw: see.add(tup) unique_lst.append(item)print(unique_lst) # 输出:[[1, 2], [2, 3], [3, 4]]登录后复制
注意:仅适用于子元素都可转为元组的情况。
基本上就这些常用方法。大多数情况下推荐 list(dict.fromkeys(lst)),简洁又高效。
以上就是python对列表中的元素进行去重操作的详细内容,更多请关注乐哥常识网转换其他相关文章! 相关标签: python app Python数据类型大家都在看: python入门:int() 如何获取python字典中的相关值? python实战:画正弦图像函数 python中字符编码是什么? python全栈开发的语法是什么?
