Python3如何实现列表去除重复元素操作(附示例)
Python3 列表去重(保留元素首次出现顺序)实现方案
针对你给出的示例,我们需要保留原列表元素的出现顺序,只去除后续重复的元素,以下是两种常用可行方案:
方案1:字典法(Python 3.7+ 适用,性能最优)
Python 3.7 版本开始,标准字典默认保留元素的插入顺序,我们可以直接用dict.fromkeys()方法快速实现去重,这个方法不需要额外引入依赖,时间复杂度为O(n):
input_list = ['2001', '0', '3c4d', '15', '0', '0', 'db8', '1a2b'] output_list = list(dict.fromkeys(input_list)) # 输出结果:['2001', '0', '3c4d', '15', 'db8', '1a2b']
方案2:集合标记法(全Python3版本兼容)
如果需要兼容3.7之前的Python版本,可以用集合记录已经出现过的元素,遍历原列表筛选未出现的元素即可,时间复杂度同样为O(n):
input_list = ['2001', '0', '3c4d', '15', '0', '0', 'db8', '1a2b'] seen = set() output_list = [] for item in input_list: if item not in seen: seen.add(item) output_list.append(item)
注意事项
如果你不需要保留原列表的顺序,可以直接用list(set(input_list))实现快速去重,但因为集合是无序结构,输出的元素顺序会被打乱,不适用你当前的需求场景。
内容的提问来源于stack exchange,提问作者axDev
相关产品推荐
相关产品推荐

