博客
关于我
Python删除list里的重复元素有几种方法?
阅读量:170 次
发布时间:2019-02-28

本文共 1232 字,大约阅读时间需要 4 分钟。

去重是处理重复数据时常见的需求。在Python中,可以通过多种方法实现去重操作,以下是几种常见的实现方法及其示例代码。

1. 使用set函数

set是Python中定义集合的数据结构,集合的特点是无序且元素唯一。可以通过将列表转换为set来去重:

numList = [1, 1, 2, 3, 4, 5, 4]print(list(set(numList)))  # 输出: [1, 2, 3, 4, 5]

这种方法简单直接,但需要注意set是无序的,可能会导致结果顺序与原列表不一致。

2. 排序后删除重复元素

另一种方法是对列表进行排序,然后从末尾开始扫描并删除重复元素:

a = [1, 2, 4, 2, 4, 5]a.sort()  # 排序后的列表: [1, 2, 2, 4, 4, 5]last = a[-1]  # 获取最后一个元素for i in range(len(a) - 2, -1, -1):    if last == a[i]:        del a[i]    else:        last = a[i]print(a)  # 输出: [1, 2, 4, 5]

这种方法适用于需要保持顺序的去重场景,但要注意性能问题,尤其是在处理大列表时。

3. 使用字典函数

字典在Python中也可以用来去重。通过将列表转换为字典的键来实现去重:

a = [1, 2, 4, 2, 4]b = {}b = dict.fromkeys(a)  # 转换为字典c = list(b.keys())print(c)  # 输出: [1, 2, 4]

这种方法不仅去重,还保留了元素的顺序,适合需要保持顺序的场景。

4. 使用append方式

可以通过遍历列表并使用append方法来实现去重:

def delList(L):    L1 = []    for i in L:        if i not in L1:            L1.append(i)    return L1print(delList([1, 2, 2, 3, 3, 4, 5]))  # 输出: [1, 2, 3, 4, 5]

这种方法的时间复杂度较高,尤其是在处理大量重复数据时。

5. count + remove方式

最后一种方法是利用count和remove方法来逐个删除重复元素:

def delList(L):    for i in L:        if L.count(i) != 1:            for x in range(L.count(i) - 1):                L.remove(i)    return Lprint(delList([1, 2, 2, 3, 3, 4]))  # 输出: [1, 2, 3, 4]

这种方法在处理重复多次时会比较高效,但需要多次遍历列表,增加了性能消耗。

转载地址:http://wryj.baihongyu.com/

你可能感兴趣的文章
mysql 权限整理记录
查看>>
mysql 权限登录问题:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
查看>>
MYSQL 查看最大连接数和修改最大连接数
查看>>
MySQL 查看有哪些表
查看>>
mysql 查看锁_阿里/美团/字节面试官必问的Mysql锁机制,你真的明白吗
查看>>
MySql 查询以逗号分隔的字符串的方法(正则)
查看>>
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT 、分页查询的优化、合理使用连接、子查询的优化)(上)
查看>>
mysql 查询,正数降序排序,负数升序排序
查看>>
MySQL 树形结构 根据指定节点 获取其下属的所有子节点(包含路径上的枝干节点和叶子节点)...
查看>>
mysql 死锁 Deadlock found when trying to get lock; try restarting transaction
查看>>
mysql 死锁(先delete 后insert)日志分析
查看>>
MySQL 死锁了,怎么办?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>
MySQL 添加列,修改列,删除列
查看>>
mysql 添加索引
查看>>
MySQL 添加索引,删除索引及其用法
查看>>
MySQL 用 limit 为什么会影响性能?
查看>>
MySQL 用 limit 为什么会影响性能?有什么优化方案?
查看>>
MySQL 用户权限管理:授权、撤销、密码更新和用户删除(图文解析)
查看>>