Python中如何删除字典值列表的重复元素实现文件出现记录去重
Python字典值列表去重实现方案
以下三种实现都可以满足需求,你可以根据自己的运行环境选择:
- 无需保留文件编号原有顺序的快速实现
利用set元素唯一的特性完成去重,代码极简,执行效率高:original_dict = {'apple': [1, 1, 4, 5], 'carrot': [1, 2, 2], 'pear': [1, 3, 3, 6]} result_dict = {key: list(set(value)) for key, value in original_dict.items()} - 保留原有出现顺序的实现(Python 3.7及以上版本适用)
利用3.7+版本字典插入有序的特性,不会打乱文件编号第一次出现的先后顺序:original_dict = {'apple': [1, 1, 4, 5], 'carrot': [1, 2, 2], 'pear': [1, 3, 3, 6]} result_dict = {key: list(dict.fromkeys(value)) for key, value in original_dict.items()} - 兼容旧Python版本的保序实现
自定义去重逻辑,适配所有Python版本:def deduplicate(lst): visited = set() output = [] for num in lst: if num not in visited: visited.add(num) output.append(num) return output original_dict = {'apple': [1, 1, 4, 5], 'carrot': [1, 2, 2], 'pear': [1, 3, 3, 6]} result_dict = {key: deduplicate(value) for key, value in original_dict.items()}
三种方法最终输出的结果均符合要求:
{'apple': [1, 4, 5], 'carrot': [1, 2], 'pear': [1, 3, 6]}
内容的提问来源于stack exchange,提问作者user11096730
相关产品推荐
相关产品推荐

