如何删除Python列表中的重复元素?含具体示例需求
嘿,这个问题太常见啦,我给你整理了几种实用的解决办法,都能轻松处理你的需求~
方法1:用集合快速去重(注意顺序问题)
集合(set)的核心特性就是元素唯一,所以转成集合再转回列表就能快速完成去重,不过这种方法会打乱原列表的元素顺序,如果不介意顺序的话,这是最简洁的方式:
dup_list = ['he', 'he', 'sh', 'sh', ' jk', 'jk', 'gf', 'gf'] new_list = list(set(dup_list)) # 输出可能类似 ['gf', 'he', 'sh', ' jk', 'jk'](顺序不固定)
方法2:保持原顺序的手动遍历去重
如果你需要保留元素第一次出现的顺序,手动遍历判断是最直观的方式,完全贴合你想要的结果逻辑:
dup_list = ['he', 'he', 'sh', 'sh', ' jk', 'jk', 'gf', 'gf'] new_list = [] for item in dup_list: if item not in new_list: new_list.append(item) print(new_list) # 输出: ['he', 'sh', ' jk', 'jk', 'gf']
注:这里' jk'和'jk'会被当成不同元素保留,因为它们的字符串内容存在差异~如果需要忽略空格这类细节,可以在判断前先对item做处理,比如用item.strip()去除首尾空格。
方法3:用字典键去重(Python 3.7+)
Python 3.7及以上版本的字典会严格保留插入顺序,而字典的键本身具备唯一性,所以用dict.fromkeys()可以一步完成去重+保序,代码更简洁优雅:
dup_list = ['he', 'he', 'sh', 'sh', ' jk', 'jk', 'gf', 'gf'] new_list = list(dict.fromkeys(dup_list)) print(new_list) # 输出: ['he', 'sh', ' jk', 'jk', 'gf']
内容的提问来源于stack exchange,提问作者Drunk Codes
相关产品推荐
相关产品推荐

