栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

列表去重的几种方法 (python)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

列表去重的几种方法 (python)

一、字符串/数值型的简单列表,用set即可
#!/usr/bin/python
# -*- coding=utf-8 -*-

list1 = [1, 3, '3', 1, 'aa', 'aa']
print(list(set(list1)))

输出:['aa', 1, '3', 3]

二、字典list,用set会报错,需要封装方法

错误示例:

list1 = [{"张三": 20, "李四": 21}, {"李四": 21}, {"李四": 21, "张三": 20}]
print(list(set(list1)))

输出:TypeError: unhashable type: 'dict'

正确方案:

#!/usr/bin/python
# -*- coding=utf-8 -*-
from functools import reduce  # 导入排序模块

def list_dict_duplicate_removal(dict_list):
    '''
    列表去重
    Returns:

    '''
    run_function = lambda x, y: x if y in x else x + [y]
    return reduce(run_function, [[], ] + dict_list)

list1 = [{"张三": 20, "李四": 21}, {"李四": 21}, {"李四": 21, "张三": 20}]
print(list_dict_duplicate_removal(list1))

输出:[{'张三': 20, '李四': 21}, {'李四': 21}]

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/308052.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号